Атрибут ASP.NET MVC DefaultValue против C # Необязательный аргумент - PullRequest
1 голос
/ 24 мая 2011

В чем разница между этой подписью метода 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 Ответ

4 голосов
/ 24 мая 2011

То же самое, это вопрос личных предпочтений. Я бы использовал второе, так как это меньше нажатий клавиш. Кроме того, я думаю, что DefaultValueAttribute будет включать в себя некоторую рефлексию вуду, поэтому, если вы занимаетесь анализом производительности, вы можете предпочесть необязательные аргументы C # 4.0.

...