2011-05-23 71 views
1

是什麼這個ASP.NET MVC2方法簽名之間的區別,它使用DefaultValue特性:ASP.NET MVC默認值屬性VS C#可選參數

public ActionResult DoStuff([DefaultValue(MyEnum.Alpha)] MyEnum enumToUse, bool printPage = false) 
{ 
    //... 
} 

而這個簽名,這不是使用C#4.0可選論據?

public ActionResult DoStuff(MyEnum enumToUse = MyEnum.Alpha, bool printPage = false) 
{ 
    //... 
} 

這兩種說法在功能上有什麼不同,還是僅僅是偏好問題?

回答

4

同樣的東西,這是個人喜好的問題。我會用第二個,因爲它的鍵擊較少。另外我認爲DefaultValueAttribute會涉及到一些反思巫術,所以如果你是關於性能的肛門,你可能更喜歡C#4.0的可選參數。