スポンサーリンク

算術演算子

演算子説明使い方
+単項プラス+a
-単項マイナス-a
+加算a + b
-減算a - b
*乗算a * b
/除算a / b
%剰余a % b

演算子の優先順位は一般の四則演算と同じです。
優先順位を変えるには括弧 (...) を使えば OK です。

1 + 2 * 3    // 7
(1 + 2) * 3  // 9

整数型同士の除算は常に切り捨てられます。
ただし,少なくとも一方のオペランドが実数型であれば,型の昇格によって結果は実数値となります。

10 / 3    // 3
10.0 / 3  // 3.333...
10 / 3.0  // 3.333...

関係演算子

演算子説明使い方
==等値a == b
!=非等値a != b
>大なりa > b
<小なりa < b
>=以上a >= b
<=以下a <= b

C# の == 演算子は,値型については値,参照型については参照の等価性を評価します。
ただし,== 演算子がオーバーロードされていれば,参照型であっても値の等価性を評価します (string 型など)。

string s = "hello";
string t = string.Copy(s);    // s の複製を作成
Console.WriteLine(s == t);                        // 出力: True
Console.WriteLine(object.ReferenceEquals(s, t));  // 出力: False

論理演算子

演算子説明使い方
&&AND (短絡評価)a && b
&ANDa & b
||OR (短絡評価)a || b
|ORa | b
!NOT!a

&& 演算子,|| 演算子は短絡評価を行います。

ビット演算子

ビット演算用の演算子です。

演算子説明使い方
&ANDa & b
^XORa ^ b
|ORa | b
~NOT~a
<<左シフトa << b
>>右シフトa >> b

インクリメント/デクリメント

インクリメント演算子 ++ は変数の値を 1 だけ増やす演算子です。
デクリメント演算子 -- は変数の値を 1 だけ減らす演算子です。
演算子を前置した場合は増減後の値を,後置した場合は増減前の値を評価結果とします。

n の値 (初期値 2)a の値
a = ++n;33
a = n++;32
a = --n;11
a = n--;12

代入演算子

代入演算子 = は右から左へ評価されます。
例えば a = b = c という式は,c から b への代入の後,a への代入を行います。

各種複合代入演算子 op= (+=, *=, ...) も用意されています。

キャスト

型変換を行うキャスト演算子は,(int) のように (型名) と書きます。

double から int への変換のように,情報の欠落が生じうる変換は,暗黙的には行われません。
キャストによる明示的な型変換が必要となります。

double d = 3.14;
int n = (int) d;

as/is 演算子

参照型の型変換には as 演算子を使うこともできます。
型の変換可能性については is 演算子によって調べられます。

object o = "hello";
if (o is string)             // o が string 型に変換可能ならば
    string s = o as string;  // o  string 型に変換

変換不能な型変換を実行した際,キャストでは例外が発生するが,as 演算子では評価結果が null になるという違いがあります。

条件演算子

条件演算子 ?: は,条件式 ? 式1 : 式2 という形で用いる三項演算子です。
条件式が真の場合には 式1 を,偽の場合には 式2 を評価結果とします。

max = a > b ? a : b;  // a > b が真ならば a, 偽ならば b を代入
スポンサーリンク