我不熟悉C#4.0,但在我會使用重載;
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");
}
}
@Sam Holder但是,8.5k的OP如何以101參數結束了他的方法?我從來沒有發生過我。我真的很想知道爲什麼這看起來是最好的設計。那裏似乎有一個瘋狂的偶合程度。直覺上來說,如果你爲這樣的方法獲得好的代碼度量,我會感到驚訝。 – 2011-04-04 13:23:30
@Sam Holder引用Jerry Seinfeld的話:「如果你有一件滿身都是血跡的T恤,可能洗衣服現在不是你最大的問題。 DateTime問題似乎在參數問題的外圍。 – 2011-04-04 13:28:35
@Simen好吧,101參數可以通過多種方式發生。遺留系統;由於缺乏時間重構(因此招致技術債務),開發團隊擴大行爲;當然,就像這種情況一樣,是大規模的諷刺。加上你認爲101參數是他在做什麼? – 2011-04-04 13:35:08