Я изучаю чужой код, и есть такой метод:
public SomeClass DoSomething(string param1, [Optional, DefaultParameterValue("")] string optional)
Почему кто-то использует эти атрибуты вместо
public SomeClass DoSomething(string param1, string optional = "")
Есть ли разница вповедение и т.д.?