C#, C♯, C#相談室 Part98 (392レス)
1-

1: デフォルトの名無しさん (ワッチョイ 7f6a-B4f6) [sage] 2024/06/29(土) 19:18:41.95 ID:NohAfdfx0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
外部リンク:www.visualstudio.com

■コードを貼る場合はこちら
外部リンク:ideone.com

■前スレ
C#, C♯, C#相談室 Part97
2chスレ:tech

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
368: デフォルトの名無しさん (アウアウウー Sac3-7Zak) [sage] 2025/05/08(木) 10:26:27.15 ID:8ptxnmrna(1) AAS
余所でやれとあなたが言ったから
色んなスレにマルチされたので
5月7日はマルチ記念日
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 がまだ生成されていない、または使えない状態になったときに再生成する。」
 という目的が明確にある場合、妥当で意味のある書き方です。
371: デフォルトの名無しさん (ワッチョイ ce01-zY++) [sage] 2025/06/16(月) 10:34:42.11 ID:Nk3UlLjY0(1) AAS
そもそも変数を使いまわそうとしているのが間違い
using等でスコープと連動させて管理すべき
372
(1): デフォルトの名無しさん (ワッチョイ b6b8-Is3k) [] 2025/06/16(月) 12:34:32.54 ID:rtKSn8210(1/2) AAS
>>370
もうほんのちょいだけ突っ込んだ解説すると、||演算子は左から評価を行い、左がtrueになった時点で右は評価を行わない

ゆえに、nullが渡ってくる可能性がある場合には~というChatGPTの回答に繋がる
373: デフォルトの名無しさん (ワッチョイ 8d1e-Q7Of) [sage] 2025/06/16(月) 14:51:53.15 ID:IaYLbsBg0(1) AAS
>>372
ショートサーキットの有無は全然関係ないだろ

ChatGPTのダメ回答にさらに間違ったダメ解説を付け足すなよ
374: デフォルトの名無しさん (ワッチョイ 5e10-15C+) [sage] 2025/06/16(月) 17:32:21.61 ID:MOf8oPnJ0(1) AAS

375: デフォルトの名無しさん (ワッチョイ 75d9-XPp7) [sage] 2025/06/16(月) 18:04:45.11 ID:wwT4Yc020(1/2) AAS
>(obj != null)の部分って意味ないんでしょうか?

(obj != null)の部分が見当たらない問題
376
(1): デフォルトの名無しさん (ワッチョイ b6b8-Is3k) [] 2025/06/16(月) 19:27:49.53 ID:rtKSn8210(2/2) AAS
フェイルセーフで実装するコードに対して、全体見えないのに設計直せは草しか生えない。ChatGPTでもやらん暴挙
その上でなぜ左右逆だといけないのかの解説に対してショートサーキットの有無は関係ないとかガチで草
377: デフォルトの名無しさん (オイコラミネオ MMdd-15C+) [sage] 2025/06/16(月) 19:46:50.44 ID:oIohr+2JM(1/2) AAS
その前にフェイルセーフなのかどうかすらわからないと思う
ここでしか初期化していないならフェイルセーフではない
378: デフォルトの名無しさん (オイコラミネオ MMdd-15C+) [sage] 2025/06/16(月) 19:54:04.99 ID:oIohr+2JM(2/2) AAS
フェイルセーフ
例えば信号が壊れたときに赤になるようにしてあれば交差点に通常運転で突っ込む事故が起こらない
壊れるにしても事態を安全な方向に振ること

初期化忘れや破棄されたインスタンス等を初期化するのはフェイルセーフではない
379
(2): デフォルトの名無しさん (ワッチョイ 75d9-Q7Of) [sage] 2025/06/16(月) 21:31:49.20 ID:wwT4Yc020(2/2) AAS
>>376
なぜ左右逆だといけないのかとショートサーキットの有無は関係ないんだけど指摘されてもマジでわかんないのか

ChatGPTの回答もう一度読んでみ?
あとはショートサーキット無しの|演算子にしたら問題がなくなるのかどうか考えてみ?
380: デフォルトの名無しさん (ワッチョイ ad01-xkro) [] 2025/06/16(月) 22:33:11.11 ID:GWwonttx0(1/2) AAS
>>379
ああ言われて気づいた、説明間違ってたわ

最初のコードだと、左から判断を行うので、instance.IsDisposedを判定するときにinstanceがnullの場合にエラーが発生する
けど逆にするとinstance == nullではじくので、instance.IsDisposedは判定しなくなる
381
(1): デフォルトの名無しさん (ワッチョイ ad01-xkro) [] 2025/06/16(月) 22:37:37.67 ID:GWwonttx0(2/2) AAS
はじくじゃねーや、また言葉間違ってる

最初のコードだと、左から判断を行うのでnstanceがnullの場合にinstance.IsDisposeでNullにアクセスしようとしてぬるぽが発生する
けど逆にするとinstanceがnullの場合は左の条件だけで生成に向かい、またinstanceがnullではない場合には誤ってDisposeされているかどうかで判断して再生成する
382: デフォルトの名無しさん (ワッチョイ 9e64-ws5E) [sage] 2025/06/17(火) 03:09:44.29 ID:37ojnUDK0(1) AAS
今の世の中AIがあんのにまだこんな場末のド素人のホビープログラマーと知ったかの吹き溜まりにきよんのか理解に苦しむんやがwww
まぁAIの使い方すらわからん低脳チンパンやからこんなまともな回答が返ってこーへんスレで質問しとんのやろーなクソワロタ
383: デフォルトの名無しさん (ワッチョイ 9e27-T1jw) [] 2025/06/17(火) 03:15:38.49 ID:TyHic1BD0(1) AAS
なるほどこれがチンパンジーか
384: デフォルトの名無しさん (アウアウウー Sacd-xHx3) [] 2025/06/17(火) 19:36:15.47 ID:ItQB0Ii0a(1) AAS
答えもらうつもりで来とるやつなんかおらんやろ
385: デフォルトの名無しさん (オイコラミネオ MMdd-Rgxs) [sage] 2025/06/17(火) 20:04:41.87 ID:lyLRSSY/M(1/2) AAS
>>381
あんたの言葉の方が、native 日本人にはおかしく聞こえる。
380 の説明は自然な日本語であり、論理的にも正確。
386: デフォルトの名無しさん (オイコラミネオ MMdd-Rgxs) [sage] 2025/06/17(火) 20:06:58.69 ID:lyLRSSY/M(2/2) AAS
>>379
|| 演算子のショートサーキット評価 (短絡評価) は大いに関係ある。
387
(1): デフォルトの名無しさん (ワッチョイ 5e10-15C+) [sage] 2025/06/17(火) 20:46:19.23 ID:QaggVUGV0(1) AAS
null判定を後に書いちゃうのはショートサーキット評価有無以前の問題だって話だろ
388: デフォルトの名無しさん (オイコラミネオ MMc6-Rgxs) [sage] 2025/06/17(火) 22:02:13.98 ID:EAFPsc4EM(1) AAS
>>387
何言ってんだか。
389: デフォルトの名無しさん (ワッチョイ 754e-x4hs) [] 2025/06/17(火) 22:56:13.68 ID:6ofORGWH0(1) AAS
null合体演算子を使う方法もある
if (instance?.IsDisposed ?? true) {...}

「ヌルの場合は」という条件を強く示したいなら is null を明示して良いと思うけど、個人的にはこちらの方が簡潔に感じる

できればプロジェクトの設定でnull参照許容型を有効にして、 instance が null になり得るかを宣言時に分かるようにするとベター
(null になり得るなら MyClass? instance のように書く)
これが有効なプロジェクトなら、nullにならないもの (?がついてない変数やフィールド) についての null チェックはしなくて良い
390: デフォルトの名無しさん (オイコラミネオ MMdd-15C+) [sage] 2025/06/17(火) 23:34:10.59 ID:iqT3/wLqM(1) AAS
それをコードそのまんまで日本語化してみろよ
基地外じみた内容にしかならない
391: デフォルトの名無しさん (ワッチョイ 12e9-r7WK) [sage] 2025/06/18(水) 08:47:51.67 ID:KyoQ8vl80(1) AAS
ミネオはキチガイしか居らんのか
392: デフォルトの名無しさん (ワッチョイ 794b-jgBs) [] 2025/06/18(水) 17:42:58.37 ID:SrJIdorw0(1) AAS
世界最長のコンテキストウィンドウ100万トークン入力・8万トークン出力対応にもかかわらずたった7800万円でトレーニングされたAIモデル「MiniMax-M1」がオープンソースで公開され誰でもダウンロード可能に
2025年06月18日 11時43分
外部リンク:gigazine.net
>>MiniMax-M1は、合計4560億のパラメーターが含まれており、トークンごとに459億のパラメーターがアクティブになるとのこと。これはDeepSeek R1の8倍に相当するコンテキストウィンドウです
>>以下のグラフは競技レベルの数学、コーディング、ソフトウェアエンジニアリング、エージェントツールの使用、長文理解タスクにおけるパフォーマンスを主要な商用AIモデルと比較したもの。赤色がMiniMax-M1で、どのタスクにおいても競合AIモデルに匹敵するパフォーマンスを発揮できている
>>MiiniMax-M1はいくつかのベンチマーク、特に長いコンテキスト駆動のベンチマークでClaude Opus 4のパフォーマンスを上回りました」と報告
※AIを動作させている動画あり
↓上記のAIお下記をプレイさせれば性能が判明する
Gemini 2.5 Proは手持ちのポケモンが瀕死になるとパニックに陥る
2025年06月18日 12時30分
外部リンク:gigazine.net

[プロテクトガードやセキュリティーホール発見可能]
※1 プログラムのバグ技[裏抜け道]を使用できる=チートコードを発見可能
・ マリオカートのショートカットはプレイヤー「極悪人」の表の抜け道でNPC「一般人」は使用不可能
[インサイダー/談合/なねーロンダリング/霊感商法など行う時の悪行で音波や電波をしての悪行の方法を発見可能
※ 政治家の法律上の抜け道を仕込める=ある業種だけの法律の抜け道を発見可能
[一般大衆の思考である特定の極悪人から目線を特定の統合失調症へ返させる装置]
※ AIは正確な情報で人間を信用させれる=AIは嘘の情報を一部混ぜて人間を洗脳できる
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.963s*