#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿