null条件演算子がnullable型に対応していない?
2023-10-31 08:07:24
質問
私はc#6でコードの一部を書いているのですが、なぜか不思議なことにこれが動作します。
var value = objectThatMayBeNull?.property;
が、これでは
int value = nullableInt?.Value;
うまくいかないというのは、次のようなコンパイルエラーが出るということです。
Cannot resolve symbol 'Value'
.
なぜ null 条件演算子
?.
が機能しないのか、何か心当たりはありませんか?
どのように解決するのですか?
さて、私はいくつかの思考とテストを行いました。このようなことが起こります。
int value = nullableInt?.Value;
コンパイル時にこのようなエラーメッセージを表示します。
型 'int' は `Value' の定義を含んでいません。
ということは
?
を「変換」して
int?
を実際の
int
の値に変換します。これは事実上、同じことです。
int value = nullableInt ?? default(int);
結果は整数で、これには
Value
を持たない、明らかに。
なるほど、これは役に立つかもしれませんね?
int value = nullableInt?;
いいえ、その構文は許可されていません。
では、どうすればいいのでしょうか?ただ
.GetValueOrDefault()
を使えばいいのです。
int value = nullableInt.GetValueOrDefault();
関連
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] NULL-COALESCING 演算子のカスタム暗黙変換の不思議な挙動
-
[解決済み] PHPの三項演算子とNULL合体演算子の比較
-
[解決済み] C#のnull-coalescing演算子に相当するPythonの演算子はありますか?
-
[解決済み] C#で演算子==はジェネリック型に適用できない?
-
[解決済み】'int'と<null>の間に暗黙の変換がないため、条件式の型が決定できない
-
[解決済み] ?:条件演算子でNullable型になる問題
最新
-
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#
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み] 関数を終了するには?
-
[解決済み】Nullableオブジェクトは値を持たなければならない?