[解決済み] NULL値チェックの正しい方法を教えてください。
2022-08-18 07:13:55
質問
null coalescing演算子を使うと、nullable型のデフォルト値を簡単に割り当てることができるので、気に入っています。
int y = x ?? -1;
これは素晴らしいことですが、もし私が単純なことをするために
x
. 例えば、もし私が
Session
をチェックしたい場合、私は通常、より冗長なものを書かなければならなくなります。
これができればいいんですけどね。
string y = Session["key"].ToString() ?? "none";
しかし
.ToString()
は null チェックの前に呼び出されるので
Session["key"]
が NULL の場合は失敗します。結局こうしています。
string y = Session["key"] == null ? "none" : Session["key"].ToString();
これは動作し、私の意見では、3行の代替案よりも優れています。
string y = "none";
if (Session["key"] != null)
y = Session["key"].ToString();
これがうまくいっても、もっといい方法があるのではないかと思っています。それは私がいつも参照しなければならないどんなものでもあるようです。
Session["key"]
を2回参照しなければならないようです。1回はチェックのため、もう1回は割り当てのためです。何かアイデアはありますか?
どのように解決するのですか?
について教えてください。
string y = (Session["key"] ?? "none").ToString();
関連
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] NULL-COALESCING 演算子のカスタム暗黙変換の不思議な挙動
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] Deep null チェック、もっといい方法はないのか?