ASP.NET MVC DefaultValue属性与C#可选参数

|| 此ASP.NET MVC2方法签名使用DefaultValue属性之间有什么区别:
public ActionResult DoStuff([DefaultValue(MyEnum.Alpha)] MyEnum enumToUse, bool printPage = false)
{
    //...
}
而这个签名使用了C#4.0可选参数呢?
public ActionResult DoStuff(MyEnum enumToUse = MyEnum.Alpha, bool printPage = false)
{
    //...
}
这两个语句在功能上是否有所不同,还是仅出于偏好?     
已邀请:
相同的东西,这是个人喜好问题。我会使用第二个,因为它的击键次数更少。我还认为ѭ2会涉及一些反射伏都教,因此,如果您对性能有所了解,则可能更喜欢C#4.0可选参数。     

要回复问题请先登录注册