1. ホーム
  2. c#

[解決済み] 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();