using System; public class Test { private static void Main(string[] args) { double k = new MyClass()+new MyClass(); Console.WriteLine(k); double k2 = new MyClass2()+new MyClass2(); Console.WriteLine(k2); double k3 = new MyClass3()+new MyClass3(); Console.WriteLine(k3); } public class MyClass { public static implicit operator int(MyClass m) { return 5; } public static implicit operator long(MyClass m) { return 100; } public static implicit operator float(MyClass m) { return 3.14f; } public static implicit operator double(MyClass m) { return 2.71d; } } public class MyClass2 { public static implicit operator long(MyClass2 m) { return 100; } public static implicit operator float(MyClass2 m) { return 3.14f; } public static implicit operator double(MyClass2 m) { return 2.71d; } } public class MyClass3 { public static implicit operator float(MyClass3 m) { return 3.14f; } public static implicit operator double(MyClass3 m) { return 2.71d; } } }