2012-03-30 56 views
6

我研究別人的代碼,並有這樣的方法OptionalAttribute和可選參數的區別:是什麼在C#4.0

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

爲什麼會有人使用這些屬性而不是

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

行爲等方面是否有區別?

+0

[MSDN(HTTP:// msdn.microsoft.com/en-us/library/system.runtime.interopservices.defaultparametervalueattribute.aspx) – 2012-03-30 16:33:56

回答

9

如果他們沒有使用C#4,例如?我認爲第二個版本將編譯成完全第一版...

(我編譯他們兩個,並通過ILDASM運行它們 - 沒有顯著差異。)

+0

無關的:這是一些高調的用戶魔法嗎?您稍後添加了最後一句,但仍然沒有看到編輯歷史記錄:) – 2012-03-30 16:56:30

+2

@Sunny:有五分鐘的寬限期,在此期間作者的編輯未顯示。 – 2012-03-30 17:03:40