2012-03-30 4 views
6

ich jemand anderes Code bin der Erforschung und es gibt eine Methode wie folgt:Was ist der Unterschied zwischen OptionalAttribute und optionalen Parameter in C# 4.0

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

Warum jemand diese Attribute statt

public SomeClass DoSomething(string param1, string optional = "") 
verwenden würden,

Gibt es Unterschiede im Verhalten usw.?

+0

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

Antwort

9

Wenn sie zum Beispiel nicht C# 4 verwenden? Ich glaube, die zweite Version in genau der ersten Version kompilieren ...

(Ich habe sie beide, und führen sie durch ILDASM zusammengestellt - es gab keine signifikanten Unterschiede.)

+0

ohne Bezug: Ist das eine hochkarätige Benutzermagie? Du hast später den letzten Satz hinzugefügt, und trotzdem sehe ich den Bearbeitungsverlauf nicht :) –

+2

@Sunny: Es gibt eine Gnadenfrist von fünf Minuten, während der Bearbeitungen durch den Autor nicht angezeigt werden. –