へたれの日々

.NETとへたれな僕の奮闘日記

  ホーム :: 連絡をする :: 同期する  :: Login
投稿数  6  :: 記事 38 :: コメント 3571 :: トラックバック 2

記事カテゴリ

書庫

日記カテゴリ

リンク

オーバーロードと聞けばメソッドを思い出しますが、今回は演算子のオーバーロードです。

演算子には + や - がありますが、これらの演算子をオーバーロードすることができます。

宣言時には operator を指定し、必ず public static でなければなりません。

  • public static 戻り値の型 opreator 演算子 ( パラメータ 1, パラメータ 2  ) { }

 

パラメータは2つありますが、単項演算子の場合は1つで、2項演算子の場合は2つとなります。

このパラメータには、少なくとも1つの型は演算子を定義するクラス自身でなければなりません。

使用できる演算子の一覧を下記に記載します。

 

  演算子 補足
単項演算子

+-!~++--

truefalse

オーバーロードできます。
2項演算子

+-*/%&|

^<<>>

オーバーロードできます。
比較演算子

==!=<><=>=

オーバーロードできます。
論理条件演算子

&&||

オーバーロードできませんが、

オーバーロードできる & および | を使用して評価されます。

配列の添字

演算子

[]

オーバーロードできませんが、インデクサは定義できます。
キャスト演算子

()

オーバーロードできませんが、新しい変換演算子は

定義できます。

詳細については、「explicit」および「implicit」を参照してください。

代入演算子

+=-=*=/=%=&=

|=^=<<=>>=

オーバーロードできませんが、

+= などはオーバーロードできる + を使用して評価されます。

その他の演算子

=.?:->newissizeof

typeof

オーバーロードできません。

 

表を見て頂けばわかるのですが、代入演算子の = はオーバーロードすることができません。

さらに、従来の演算子をオーバーロードで隠蔽することや、ref や out などのパラメータを使用することはできません。

 

 

投稿日時 : 2007年1月25日 11:51

コメント

# wXiloNGLKQ 2014/07/19 13:01 http://crorkz.com/
BrRGg5 Hey, thanks for the article.Thanks Again. Want more.

コメントの投稿

タイトル:
名前:
Url:
コメント: