[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
592: デフォルトの名無しさん (オイコラミネオ MM9b-1CQB) [sage] 2022/05/08(日) 00:41:15.00 ID:9MG0SRykM(1/4) AAS
int?はnullにはならないから
596(1): デフォルトの名無しさん (オイコラミネオ MM9b-1CQB) [sage] 2022/05/08(日) 03:01:32.74 ID:9MG0SRykM(2/4) AAS
int?の正体はNullable<int>という値型
構造体はnullにはならない
まるでnullのように見せかけているだけ
int?x=null;
x.ToString();
これは一見するとヌルポだがnullじゃないのでこれは通る
nullにならない値型なのでいちいちこの場所ではnullになりませんとは言わない
x.GetType();
はヌルポになる
なぜか?
GetTypeの呼び出しはobjectへのbox化のあとに行われる
nullのように見えているだけのxはbox化されて本物のnullになる
GetTypeを呼んでるところだけ本物のnullになってるのでIDEは正確に警告を出す
597(1): デフォルトの名無しさん (オイコラミネオ MM9b-1CQB) [sage] 2022/05/08(日) 03:42:17.44 ID:9MG0SRykM(3/4) AAS
int?は値型なのでnullにはならない
なのでいくらnullチェックをしても状況が変わるわけがない
nullにならないint?のnullチェックをしたってそれはint?のままだ
Nullable<int>はNullable<int>のままだ
intからint?は暗黙に変換できる
int?からintは暗黙に変換できない
そういうことになっている
だからIsInt(x)は呼び出せない
8.0で追加された機能の名称にnull許容参照型って書いてあるだろう
Nullable<>は参照型ではなく値型だ
こいつは2.0から存在する
構文が似ているが別の体系の機能なのだ
602(1): デフォルトの名無しさん (オイコラミネオ MM9b-1CQB) [sage] 2022/05/08(日) 10:53:37.27 ID:9MG0SRykM(4/4) AAS
>>599599(1): デフォルトの名無しさん (ワッチョイ 6a79-pMfC) [sage] 2022/05/08(日) 09:32:20.59 ID:wSAz/RiZ0(1/2) AAS
>>596
>int?の正体はNullable<int>という値型
>>597
>8.0で追加された機能の名称にnull許容参照型って書いてあるだろう
>Nullable<>は参照型ではなく値型だ
>こいつは2.0から存在する
>構文が似ているが別の体系の機能なのだ
混乱してきた
int?の正体はNullable<int>という値型でNullable<>は2.0から存在するが
8.0のint?は参照型で別の体系の機能なのだ???
8.0から入ったのは参照型のnull許容
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.524s*