using System; class MyType{ Int32 val; public static implicit operator MyType(Int32 i) { Console.WriteLine("operator MyType({0}) called", i); MyType m = new MyType(); m.val = i; return m; } public static explicit operator Int32(MyType m) { Console.WriteLine("operator Int32({0}) called", m.val); return m.val; } } class App{ public static void Main(){ MyType m = 10; Int32 i = 20 + (Int32)m; m = (MyType)i; Console.WriteLine((Int32)m); } }