Обычно, если у меня есть нулевой тип для необязательного параметра, я бы поместил null в качестве значения по умолчанию. Таким образом, я знаю, что если значение равно null, вызывающий объект не хочет указывать какое-либо значение для этого.
public void Foo(string text, string text2= null);
Если параметр обычно является положительным целым числом, я могу использовать отрицательное число
public void Foo(string text, int index=-1);
Как насчет DateTime? Он не имеет значения NULL, и (насколько я знаю) он не имеет бессмысленного числа, которое не может быть истинным вводом (например, -1 для положительного целого числа). Или есть? Что бы вы использовали в этой ситуации?
Я также знаю, что я могу использовать тип nullable DateTime
, но это означает, что вызывающий метод должен будет использовать Nullable, а также просто просто передать DateTime.