If DateTime is an object and default C# parameters can only be assigned compile-time constants, how do you provide default values for objects like DateTime?
I am trying to initialize values in a POCO with a constructor, using named parameters with default values.
DateTime
cannot be used as a constant but you could make it a nullable type (DateTime?
) instead.
Give the DateTime?
a default value of null
, and if it is set to null
at the start of your function, then you can initialize it to any value you want.
static void test(DateTime? dt = null)
{
if (dt == null)
{
dt = new DateTime(1981, 03, 01);
}
//...
}
You can call it with a named parameter like this:
test(dt: new DateTime(2010, 03, 01));
And with the default parameter like this:
test();