Checking for Null in Constructor
To the compiler, null
is a legitimate constructor argument.
Your class might be able to handle a null value for myObject
. But if it can't - if your class will break when myObject
is null - then checking in the constructor allows you to fail fast.
Passing a null
object is perfectly legal in many cases - for this class the implementor wants to ensure that you cannot create an instance of the class w/o passing a valid Object
instance though, so there have to be no checks later on - it's a good practice to ensure this as early as possible, which would be in the constructor.
if you under 4.0 you can do the following:
public ctor(IEnjection ninjaWeapon)
{
Contract.Requires<ArgumentNullException>(ninjaWeapon != null);
this.deadlyWeaponary.Add(ninjaWeapon);
}
if you under an older version, reference the Microsoft.Contract to do the same thing.