1

这个使用 DefaultValue 属性的 ASP.NET MVC2 方法签名有什么区别:

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

1 回答 1

4

一样的东西,看个人喜好。我会使用第二个,因为它的击键次数更少。此外,我认为这DefaultValueAttribute将涉及一些反射巫术,因此如果您对性能不感兴趣,您可能更喜欢 C# 4.0 可选参数。

于 2011-05-23T21:38:11.323 回答