は、WinFormsの設計者はこのようになりますdisposeメソッドを生成します。なぜWinFormsデザイナーは、disposeメソッドで多少「不便」なコードを生成しますか?フォームまたはユーザーコントロールを作成すると
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
このコードの問題は、それが今までに編集された場合、それは間違った行動につながることができるということです追加のオブジェクトを廃棄します。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
if (_myDisposable != null)
_myDisposable.Dispose();
if (_myOtherDisposable != null)
_myOtherDisposable.Dispose();
}
base.Dispose(disposing);
}
... _myDisposableと_myOtherDisposableの処分は、コンポーネントがnullであるかどうかに依存してはならないとして、間違っていた:私はこのようになり処分方法で.designer.csにファイルを見てきました。
このデザイナで生成されたコードを編集し、テンプレートを編集して変更できるという事実を無視するかどうかについての議論を無視して、私の質問は次のとおりです。これはもっと似ていますか?
protected override void Dispose(bool disposing)
{
if (disposing)
{
if(components != null)
components.Dispose();
}
base.Dispose(disposing);
}
このコードの最終結果は同じですが、修正中にエラーが発生しにくく、安全です。
第1と第3のコードブロックは(ほとんど)同じです。または私は何かを逃していますか? –
@Erno - '&&'が短絡するので正しいです。 – Oded
質問はありません(スプーン)? –