C#でオーバーロードできる演算子は?可能な演算子と不可能な演算子の一覧
C#では、クラスや構造体に対して演算子の動作を独自に定義する「演算子のオーバーロード」が可能です。ただし、すべての演算子がオーバーロードできるわけではなく、言語仕様によって明確に制限されています。
この記事では、C#においてオーバーロードできる演算子と、オーバーロードできない演算子を一覧形式でわかりやすく解説します。
C#の演算子オーバーロード対応一覧
| 番号 | 演算子と説明 |
|---|---|
| 1 | +、-、!、~、++、-- これらは単項演算子です。1つのオペランドを対象とし、オーバーロードすることができます。 |
| 2 | +、-、*、/、% これらは二項算術演算子です。2つのオペランドを対象とし、オーバーロードすることができます。 |
| 3 | ==、!=、<、>、<=、>= 比較演算子もオーバーロード可能です。ただし、 ==と!=、<と>、<=と>=のように、ペアで必ず一緒にオーバーロードする必要があります。 |
| 4 | &&、|| 条件論理演算子は直接オーバーロードできません。ただし、 &および|をオーバーロードすれば、間接的に利用できます。 |
| 5 | +=、-=、*=、/=、%= 複合代入演算子は直接オーバーロードできません。ただし、対応する二項演算子(+、-など)がオーバーロードされていれば、自動的に機能します。 |
| 6 | =、.、?:、->、new、is、sizeof、typeof これらの演算子はオーバーロードできません。 |
まとめ
C#の演算子オーバーロードは、数値型のような自然な操作をカスタム型に実装する際に非常に便利です。一方で、代入演算子や条件論理演算子など、言語の安全性や一貫性に関わる演算子には制限があります。オーバーロードを実装する際は、上記の一覧を参考に、どの演算子が対象となるかを事前に確認しておきましょう。
-
10.0.0.1とは?プライベートIPアドレスの意味とログイン方法・トラブル対処法
10.0.0.1は、クライアントデバイスに割り当てられたり、ネットワーク機器のデフォルトIPアドレスとして設定されたりする、プライベートIPアドレスです。 10.0.0.1とは? 10.0.0.1は、家庭向けネットワークよりも企業向けコンピューターネットワークでよく見られるIPアドレスです。家庭用ルーターでは通常、192.168.1.1や192.168.0.1など、192.168.x.x系のアドレスが使われます。ただし、家庭内のデバイスに10.0.0.1が割り当てられることもあり、その場合も他のIPアドレスとまったく同じように機能します。 クライアントデバイスが10.0.0.xの範囲(例:1
-
Pythonの<<と>>演算子とは?ビットシフト演算子の基本を解説
Pythonの演算子(ビットシフト演算子)とはPythonにおける「<<」と「>>」は、それぞれ左シフト演算子・右シフト演算子と呼ばれるビット単位の演算子です。第1オペランドには数値オブジェクトの2進数表現が用いられ、第2オペランドには、そのビット列を左右どちらの方向に何桁ずらすかを指定します。これらの演算子を使うと、整数を2進数のビット列として操作でき、効率的な計算やフラグ管理などに役立ちます。左シフト演算子「<<」の使い方「<<」はビットパターンを左へシフトし、空いた右側(最下位ビット側)には0が埋められます。以下の例では、60(2進数で11