下面的代碼生成一個CA2000警告:使用對象初始化生成CA 2000警告
Myclass myclass = null;
try
{
myclass = new Myclass { Name = "a name" };
}
finally
{
if (myclass != null)
{
myclass.Dispose();
}
}
我發現了一些主題與同樣的問題,我的理解的問題是,編譯器生成構造一個臨時變量而對於這個變量,我並沒有調用Dispose()。
var tmp = new MyClass();
tmp.Name = "a name";
myclass = tmp:
所以我的問題是,如果有使用它不產生CA2000警告對象初始化的解決方案。
感謝先進。
我還想知道爲什麼要手動編寫'using'語句,但即使在那裏也會生成相同的警告。 – 2012-01-05 07:42:52
參見[這個問題](http://stackoverflow.com/questions/6409918/object-initializer-and-dispose-when-property-can-throw-exception) – 2012-01-05 07:46:28
我看到這個題目(和其他一些人有同樣的問題)。但是在所有這些話題中,我沒有找到使用對象初始值設定項的解決方案。 – rhe1980 2012-01-05 07:56:16