Я не знаком с C # 4.0, но в c # 3.5 я бы использовал перегрузку;
public void Problem()
{
Problem(DateTime.MaxValue);
}
public void Problem(DateTime dt)
{
}
И вызывал бы это с помощью:
Problem(); //defaults to maxvalue
Problem(myDateTime); //uses input value
Редактировать:Просто чтобы ответить на некоторые комментарии;
public class FooBar
{
public bool Problem()
{
//creates a default person object
return Problem(new Person());
}
public void Problem(Person person)
{
//Some logic here
return true;
}
}
public class Person
{
public string Name { get; private set; }
public DateTime DOB { get; private set; }
public Person(string name, DateTime dob)
{
this.Name = name;
this.DOB = dob;
}
/// <summary>
/// Default constructor
/// </summary>
public Person()
{
Name = "Michael";
DOB = DateTime.Parse("1980-07-21");
}
}