[解決済み】オブジェクトを破棄してnullにする必要があるのか?
2022-03-25 05:51:22
質問
オブジェクトを破棄してnullにする必要がありますか?それとも、オブジェクトがスコープ外に出たときにガベージコレクタが掃除してくれるのでしょうか?
どのように解決するのですか?
オブジェクトは、使用されなくなったときや、ガベージコレクタが適切と判断したときに、クリーンアップされます。 時には、オブジェクトを
null
に設定する必要はありません。
null
.
オブジェクトの廃棄については、@Andreに同意します。 もしオブジェクトが
IDisposable
それは
廃棄するのがよいでしょう
特に、そのオブジェクトがアンマネージドリソースを使用している場合は、不要になったときに使用します。アンマネージド・リソースを廃棄しないことは
メモリリークを引き起こす
.
を使用することができます。
using
のスコープを離れると、自動的にオブジェクトを破棄します。
using
ステートメントを使用します。
using (MyIDisposableObject obj = new MyIDisposableObject())
{
// use the object here
} // the object is disposed here
と機能的に同等である。
MyIDisposableObject obj;
try
{
obj = new MyIDisposableObject();
}
finally
{
if (obj != null)
{
((IDisposable)obj).Dispose();
}
}
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] Javaにデストラクタはありますか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] HttpClientリクエストのContent-Typeヘッダーはどのように設定するのですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み] .NETで使用後にオブジェクトをNull/Nothingに設定する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】C#で四捨五入する方法
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。