C# 3項演算子とnull条件演算子、クエスチョンマークの使い方

C#での3項演算子とnull条件演算子、クエスチョンマークの使い方について解説します。

C#ではクエスチョンマーク演算子がよく出てくるんですけど、意味がよく分からないんですよね。

C#のクエスチョンマーク演算子の使い方、覚えにくいですよね。3項演算子null条件演算子など一度確認してみましょう。

目次

3項演算子のクエスチョンマークを使った記法

3項演算子は、3つの式から1つの式を生成するための演算子です。構文は以下のようにクエスチョンマークを使用します。

式1 ? 式2 : 式3

式1がtrueの場合、式2が評価されます。式1がfalseの場合、式3が評価されます。

 例えば、2つの変数xとyを比較し、xがyより大きい場合に「xはyより大きい」という文字列を、それ以外の場合に「yはxより大きい」という文字列を生成するコードは以下のようになります。

int x = 10;
int y = 20;
string result = x > y ? "x is greater than y" : "y is greater than x";
Console.WriteLine(result);

このように、3項演算子を使用することで、条件分岐の構文を簡潔にすることができます。

null条件演算子とは?

null条件演算子は、オブジェクトがnullでないかどうかを判定するための演算子です。

 nullに対して想定していない処理を行った場合、例外「NullReferenceException」が発生します。
null条件演算子を使用することで、null値に対して処理を行わずにエラーを回避することができます。

null条件演算子を使用するには、変数の後ろに「?」を付けます。以下のように記述します。

変数名?.プロパティ名または変数名?[インデックス]

 例えば、オブジェクト変数がnullでない場合に、そのオブジェクトのプロパティを取得するコードは以下のようになります。

List<int> list = null;
int? result = list?[0];
Console.WriteLine(result);

 このように、null条件演算子を使用することで、nullのチェックを簡潔にすることができます。また、nullの場合に例外を発生させずにnullを返すこともできます。

null合体演算子としての??(ダブルクエスチョンマーク)

 null合体演算子は、2つのオペランドのいずれかがnullでない場合に、そのオペランドの値を返す演算子です。
??(ダブルクエスチョンマーク)を使用することで、nullの判定を行うことができます。

変数名1 ?? 変数名2

 例えば、変数xがnullでない場合にxを、それ以外の場合にyを返すコードは以下のようになります。

int? x = null;
int y = 10;
int result = x ?? y;
Console.WriteLine(result);

このように、クエスチョンマークを使用することで、nullのチェックと代替値の代入を簡潔にすることができます。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

まとめ

C#での3項演算子とnull条件演算子、クエスチョンマークの使い方について解説しました。

  • 3項演算子は、3つの式から1つの式を生成するための演算子です。
  • 3項演算子は、if-else文を簡潔に書くために使用することができます。
  • null条件演算子は、オブジェクトがnullでないかどうかを判定するための演算子です。
  • クエスチョンマークは、「null合体演算子」の一種であり、nullのチェックと代替値の代入を簡潔にすることができます。

これらの演算子を使用することで、プログラムを簡潔に書くことができまそうです!
効率的なコーディングをするためにも覚えておいて損はないですね。

C#には、3項演算子やnull条件演算子、クエスチョンマークなど、多数の便利な演算子が用意されています。これらの演算子を使用することで、プログラムを効率的に書くことができます。是非、活用して効率的なコーディングを目指しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次