私は自分のプロジェクトについて完全なコード分析を行っていますが、それは500の問題があると言います。私は今300に煮詰めましたが、私は解決策を見つけることができない問題で苦労しています。このシナリオでのコード分析 "CA2000"ルールの解決?
ルールCA2000状態:
ガベージコレクタがのファイナライザを実行したとき、それに対するすべての参照がスコープ外に、オブジェクトはいくつかの不確定時点で配置されますされる前に、使い捨てのオブジェクトは、明示的に配置されていない場合オブジェクト。オブジェクトのファイナライザが実行されないような例外的なイベントが発生する可能性があるため、オブジェクトを明示的に破棄する必要があります。
さらに詳しい情報は、上記のページにあります。ルールがオン故障している
コードは以下です:
internal Window(Game game, Control parent, string title, bool visible)
: base(game, parent, visible, new ScreenspaceRectangle(game, Color.Black, Vector.Zero, Vector.Zero))
{
}
と説明である:
CA2000:Microsoft.Reliability:方法で「Window.Window(ゲーム、コントロール、文字列、bool) 'の場合、すべての参照がスコープ外になる前に、' ScreenspaceRectangle(game、Color.Black、Vector.Zero、Vector.Zero) 'オブジェクトのSystem.IDisposable.Disposeを呼び出します。
私は、この問題が正常に処理されることを確認するために、作成中のオブジェクトの周りに "using"ステートメントを使用することによって、通常解決できることを理解しています。しかし、私はこの場合どのように解決しますか?
ScreenspaceRectangleを処分する必要があるのはなぜですか? –