これは簡単です、きっと。私は検索しようとしましたが、喜びはありません。
A
typeの public フィールドを持つF
typeのオブジェクトがあるとしますB
。B
と setのインスタンスを作成しますA.F=B
。
の結果A.F == null
は False です。の結果A.F is B
は True です。
ただし、B
null に設定されます。プロパティは、のA.F
古いインスタンスへのハンドルを保持していますB
。そして、 のランタイム ルックアップは、A.F
それを type として表示しB
ます。したがって、テストA.F == null
はまだ False を返しますが、テストA.F is B
はまだ True を返します。ゴミ捨て済みなのにB
。
では、プロパティをチェックしてA.F
、そのハンドルが消えたオブジェクトを指しているかどうかを確認するにはどうすればよいでしょうか?