using System; class MyType{ internal int val; public MyType( int val ) { this.val = val; } public static MyType operator +(MyType c1, MyType c2){ Console.WriteLine("MyType operator+({0},{1}) called", c1.val, c2.val); return new MyType(c1.val + c2.val); } public static Boolean operator ==(MyType c1, MyType c2){ Console.WriteLine("MyType operator==({0},{1}) called", c1.val, c2.val); return c1.val == c2.val; } public static Boolean operator !=(MyType c1, MyType c2){ Console.WriteLine("MyType operator!=({0},{1}) called", c1.val, c2.val); return c1.val != c2.val; } } class App{ public static void Main(){ MyType m1 = new MyType( 4 ); MyType m2 = new MyType( 5 ); MyType m3 = m1+m2; Boolean b = (m3==m2); } }