演算子のオーバーロード
演算子のオーバーロード - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
C++と同様にC#にも演算子のオーバーロードがあります。定義の仕方もまぁほぼ同じですね。
using System; class Class { public int i; public Class (int i) { this.i = i; } // Class同士の足し算 public static Class operator+ (Class x, Class y) { return new Class(x.i+y.i); } // Classとintの足し算 public static Class operator+ (Class x, int y) { return new Class(x.i+y); } // intとClassの足し算 public static Class operator+ (int x, Class y) { return new Class(x+y.i); } } class Program { static void Main() { var cobj1 = new Class(1); var cobj2 = new Class(10); var cobj3 = cobj1 + cobj2; Console.WriteLine(cobj3.i); var cobj4 = cobj1 + 50; Console.WriteLine(cobj4.i); var cobj5 = 100 + cobj2; Console.WriteLine(cobj5.i); } }
$ main 11 51 110
何がオーバーロード可能かは上記URLに書いてあるので一通り覚えときましょうー。