次のコードは、CA2000 警告を生成します。
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警告を生成しないオブジェクト初期化子を使用する解決策があるかどうかです。
ありがとうございます。