ASP.NET MVC DefaultValue属性vs C#Optional Argument

时间:2011-05-23 21:36:10

标签: asp.net-mvc-2 c#-4.0 default-value optional-arguments

此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)
{
    //...
}

这两个陈述在任何功能方面都有所不同,还是只是偏好?

1 个答案:

答案 0 :(得分:4)

同样的东西,这是个人喜好的问题。我会使用第二个,因为它的键击次数较少。另外我认为DefaultValueAttribute会涉及一些反思巫术,所以如果你对性能很苛刻,你可能更喜欢C#4.0可选参数。