ITメモ
C#




【C#】C#の演算子

【C#】
「C#」の演算子








演算子とは


演算子とは、数式を用いる演算などで使用する記号のことをいい、
数値演算、インデックス作成、関数呼び出しなどで利用される。




演算子の一覧(優先順位順)

主な演算子優先順位が最も高い演算子。
x.yメンバー アクセス。
x?.ynull 条件付きのメンバー アクセス。 左側のオペランドが null の場合に null を返す。
f(x)関数の呼び出し。
a[x]集約オブジェクトのインデックス作成。
a?[x]null 条件付きのインデックス作成。 左側のオペランドが null の場合に null を返す。
x++後置インクリメント。 x の値を返した後、1 大きくなった (通常は整数 1 が加算された) x の値で格納場所を更新します。
x--後置デクリメント。 x の値を返した後、1 小さくなった (通常は整数 1 が減算された) x の値で格納場所を更新します。
New型のインスタンス化。
Typeofオペランドを表す System.Type オブジェクトを返す。
Checked整数演算のオーバーフロー チェックを有効にします。
Unchecked整数演算のオーバーフロー チェックを無効にします。 これがコンパイラの既定の動作です。
default(T)型 T の既定の初期値 (参照型の場合は null、数値型の場合は 0、構造体型の場合は 0 または null が格納されたメンバー) を返す。
Delegatedelegate インスタンスを宣言して返します。
Sizeof型オペランドのサイズをバイト単位で返します。
->メンバー アクセスと組み合わせてポインターを逆参照します。
 
 
単項演算子
+xx の値を返す。
-x数値の否定。
!x論理否定。
~xビットごとの補数。
++x前置インクリメント。 1 大きくなった (通常は整数 1 が加算された) x の値で格納場所を更新した後に x の値を返す。
--x前置デクリメント。 1 小さくなった (通常は整数 1 が減算された) x の値で格納場所を更新した後に x の値を返す。
(T)x型キャスト。
AwaitTask を待機します。
&xアドレス。
*x逆参照。
 
 
乗算演算子
x * y乗算。
x / y除算。 オペランドが整数の場合、結果は 0 に近い整数になるように切り捨てられます (例: -7 / 2 is -3)。
x % y剰余。 オペランドが整数の場合、x を y で除算した剰余を返す。 q = x / y で r = x % y の場合、x = q * y + r になります。
 
 
加法演算子
x + y加算。
x – y減算。
 
 
シフト演算子
x << yビットを左へシフトし、右側には 0 を格納します。
x >> yビットを右へシフトします。 左側のオペランドが int または long の場合、左側のビットには符号ビットが格納されます。 左側のオペランドが uint または ulong の場合、左側のビットには 0 が格納されます。
 
 
関係演算子と型検査演算子
x < yより小さい (x が y より小さい場合は true)。
x > yより大きい (x が y より大きい場合は true)。
x <= y以下。
x >= y以上。
Is型の互換性。 評価される左側のオペランドを右側のオペランドで指定された型 (静的な型) にキャストできる場合は、true を返す。
As型変換。 左側のオペランドを右側のオペランドで指定された型 (静的な型) にキャストして返します。ただし、(T)x が例外をスローした場合、as は null を返す。
 
 
等値演算子
x == y等価比較。 既定では、string 以外の参照型の場合、参照の等価性を返します (等価テスト)。 ただし、型は == をオーバーロードできるため、同一性のテストが目的の場合は object で ReferenceEquals メソッドを使用することをお勧めします。
x != y等しくない。 == のコメントを参照してください。 型が == をオーバーロードする場合は、!= をオーバーロードする必要があります。
 
 
論理 AND 演算子
x & y論理またはビットごとの AND。 通常、整数型および enum 型で使用できます。
 
 
論理 XOR 演算子
x ^ y論理またはビットごとの XOR。 通常、整数型と enum 型で使用できます。
 
 
論理 OR 演算子
x | y論理またはビットごとの OR。 通常、整数型および enum 型で使用できます。
 
 
条件 AND 演算子
x && y論理 AND。 最初のオペランドが false の場合、C# では 2 番目のオペランドが評価されない。
 
 
条件 OR 演算子
x || y論理 OR。 最初のオペランドが true の場合、C# では 2 番目のオペランドが評価されない。
 
 
Null 合体演算子
x ?? yx が null 以外の場合は x を返す。null の場合は y を返す。
 
 
条件演算子
t ? x : yテスト t が true の場合は x を評価して返す。それ以外の場合は y を評価して返す。
 
 
代入演算子とラムダ演算子
x = y代入。
x += yインクリメント。 y の値を x の値に加算した結果を x に格納し、新しい値を返す。 x が event を指定した場合、y は、C# によってイベント ハンドラーとして追加される適切な関数である必要があります。
x -= yデクリメント。 y の値を x の値から減算した結果を x に格納し、新しい値を返す。 x が event を指定した場合、y は、C# によってイベント ハンドラーとして削除される適切な関数である必要があります。
x *= y乗算代入。 y の値を x の値に乗算した結果を x に格納し、新しい値を返す。
x /= y除算代入。 x の値を y の値で除算した結果を x に格納し、新しい値を返す。
x %= y剰余代入。 x の値を y の値で除算した剰余を x に格納し、新しい値を返す。
x &= yAND 代入。 y の値と x の値の AND 演算を行った結果を x に格納し、新しい値を返す。
x |= yOR 代入。 y の値と x の値の OR 演算を行った結果を x に格納し、新しい値を返す。
x |= yXOR 代入。 y の値と x の値の XOR 演算を行った結果を x に格納し、新しい値を返す。
x <<= y左シフト代入。 x の値を y で指定した分だけ左へシフトした結果を x に格納し、新しい値を返す。
x >>= y右シフト代入。 x の値を y で指定した分だけ右へシフトした結果を x に格納し、新しい値を返す。
=>ラムダ宣言。