C#, C♯, C#相談室 Part98 (392レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
369: デフォルトの名無しさん (ワッチョイ 7540-gmcI) [] 2025/06/16(月) 03:18:14.57 ID:BRbK5XdC0(1/2) AAS
IDisposableを実装したクラスのインスタンスがもし破棄されていたら再度生成するために、
if(instance.IsDisposed || instance == null){
instance = new MyClass();
}
という書き方してるんですが、(obj != null)の部分って意味ないんでしょうか?
370(1): 369 (ワッチョイ 7540-gmcI) [sage] 2025/06/16(月) 03:32:02.55 ID:BRbK5XdC0(2/2) AAS
すみません。ChatGPTが下記の回答をくれました。
instance が null の場合、insntace.IsDiposed の評価時に NullReferenceException が発生してしまうので、
if(instance == null || instance.IsDisposed){
instance = new MyClass();
}
にしなければならない。
必要かどうか。
設計上 instance が null になる可能性がある場合、null チェックは必要。
絶対に null にならないように管理されている場合、null チェックは不要。
「instance がまだ生成されていない、または使えない状態になったときに再生成する。」
という目的が明確にある場合、妥当で意味のある書き方です。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.058s*