2012-03-30 15 views
6

Jestem badania cudzej kod i nie jest to metoda tak:Jaka jest różnica między OptionalAttribute i opcjonalnych parametrów w C# 4.0

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

Dlaczego ktoś miałby korzystać z tych atrybutów zamiast

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

Czy są jakieś różnice w zachowaniu itp.?

+0

[MSDN] (http: // msdn.microsoft.com/en-us/library/system.runtime.interopservices.defaultparametervalueattribute.aspx) –

Odpowiedz

9

Jeśli nie używają C# 4, na przykład? Wierzę, że druga wersja zostanie skompilowany dokładnie w pierwszej wersji ...

(mam skompilowane ich oboje i uruchomić je poprzez ILDASM - nie wystąpiły znaczące różnice.)

+0

niepowiązanych: czy to jakiś wysoki poziom użytkownika magii? Ostatnie zdanie zostało dodane później, a mimo to nie widzę historii edycji :) –

+2

@Sunny: Istnieje pięciominutowy okres karencji, w którym zmiany wprowadzone przez autora nie są pokazywane. –

Powiązane problemy