Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9370

C#の基本イディオムについてその3~三項演算子・null合体演算子~

$
0
0
C#での三項演算子(条件演算子)とnull合体演算子についてまとめてみた。 三項演算子とは 三項演算子とは、「(条件) ? (trueの場合の値) : (falseの場合の値) 」のように値を書く公式みたいなものである。 (例)japaneseというstring型の値が"はい"だった場合に"Yes"、そうじゃない場合に"No"を返すenglishという変数を定義したい場合 val english = japanese == "はい" ? "Yes" : "No"; 三項演算子を使う場合は、コードが複雑にならないように、単純な値にすること。 判定する値がnullかどうかを判定し、nullじゃなかったら何らかの値を返したい場合 (例)nameというstring型の値が"ジョルノ・ジョバーナ"という値だったときに、"黄金の風"というstring型の値を返すが、そのnameがnullの場合もあることを考慮したい場合、 string? name = "ジョルノ・ジョバーナ"; return name ?? "黄金の風"; と書くことができる。(この場合は、nameがnullじゃないので、"黄金の風"を返す) string? name = nulll; return name ?? "黄金の風"; (この場合は、nameがnullなので、ただ単にnullを返す。) null条件演算子(C#6.0以降で使用可能。) (例) データベースにUserというテーブルが存在し、そのUserをIdで検索してユーザーが存在していた場合に、そのUserの名前を返したい場合、 データベースを参照するコードが書かれているとして、 private UserContext db = new UserContext(); が宣言されていて、dbのテーブルが参照できるようになっているとし、 そのUserのモデルが ・Id(int型) ・Name(string型) だとする。 var loginUser = db.Users.Find(id); var returnData = loginUser?.Name; と三項演算子をさらに省略し、nullかどうかを判定する変数名の後ろに「?」をつけ、その後に「.」でアクセスするプロパティを書くことができる。 こうすることで、loginUserがnullであればnullを返し、そうじゃなければ、Nameプロパティを返す。 null条件演算子・合体演算子を組み合わせることもできる (例) UserからFindメソッドでデータを検索する際に、見つからなかったら、"ユーザー"というstring型の値を返したい場合 var loginUser = db.Users.Find(id); var returnData = loginUser?.Name && "ユーザー"; と書くことができる。 参考記事

Viewing all articles
Browse latest Browse all 9370

Latest Images

Trending Articles