#3 C#で学ぶ演算子の基本

C#の演算子は、Javaとよく似た標準的な書き方に加えて、null(値がない状態)を安全に扱うための便利な演算子が用意されています。この記事では、C#の基本的な演算子とnull安全のための演算子について解説します。

算術演算子・比較演算子

C#では、次のような演算子を使います。

  • + - * / % 算術演算子
  • == != > < 比較演算子
  • && || ! 論理演算子

C#の==は、文字列同士でも中身を正しく比較してくれます。

整数の割り算は切り捨てになる

C#でも、整数型(int)同士の割り算は小数点以下が切り捨てられます。小数の結果が欲しい場合は、どちらかの値をdouble型にする必要があります。

double result = 10.0 / 3;

Null条件演算子とNull合体演算子

C#には、値がnullかもしれない変数を安全に扱うための演算子が用意されています。

  • ?. 値がnullでなければ処理を続ける
  • ?? 値がnullのとき、代わりの値を使う
string displayName = nickname ?? "名無しさん";
int? length = nickname?.Length;

代入と組み合わせた??=という演算子もあり、「nullのときだけ値を設定する」処理を簡潔に書けます。

nickname ??= "名無しさん";

null許容型という書き方

C#では、値型(int, boolなど)は本来nullを持てませんが、型の後ろに?を付けることで、nullも許容する「null許容型」として扱えます。

int? age = null;
if (age.HasValue) {
    Console.WriteLine(age.Value);
}

パターンマッチング演算子is

isを使うと、値の型を確認しつつ、同時にその型の変数として取り出すことができます。

object obj = "太郎";
if (obj is string name) {
    Console.WriteLine($"文字列です: {name}");
}

型チェックと変換を1行でまとめて書けるため、従来のasによるキャストより簡潔に書けます。

C#ならではの注意点

C#は歴史的にJavaの影響を強く受けているため、演算子の基本はJavaとほぼ共通しています。一方でnull安全のための演算子が豊富に用意されており、これらを使いこなすことで、より簡潔で安全なコードが書けます。Javaの経験がある人ほど、その便利さの違いに気づきやすいでしょう。

まとめ

C#の演算子は基本的にJavaと共通していますが、?.・??・??=といったnull安全のための演算子が充実している点が特徴です。null許容型と合わせて積極的に活用してみましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本