В чем разница между OptionalAttribute и необязательные параметры в C# 4.0

Я исследую чужой код, и есть такой метод:

public SomeClass DoSomething(string param1, [Optional, DefaultParameterValue("")] string optional)

зачем кому-то использовать эти атрибуты вместо

public SomeClass DoSomething(string param1, string optional = "")

есть ли разница в поведении и т. д.?

1 ответов


Если бы они не использовали C# 4, например? Я считаю, что вторая версия будет скомпилирована в точно первую версию...

(Я собрал их обоих и прогнал их через ILDASM - существенных различий не было.)