Mega Code Archive

 
Categories / C# Tutorial / Operator Overload
 

User-Defined Conversions

using System; using System.Text; struct MyType {     private int value;          public MyType(int value)      {         this.value = value;     }     public static explicit operator MyType(short value){         Console.WriteLine("public static explicit operator MyType(short value)");                  return new MyType();     }          public static implicit operator short(MyType myType){         Console.WriteLine("public static implicit operator short(MyType myType)");         return 0;     }          public static implicit operator string(MyType myType){         Console.WriteLine("public static implicit operator string(MyType myType)");         return "String value:";     } } class MainClass {     public static void Main()     {         int s = 12;         MyType numeral = new MyType(s);                  s = 165;         numeral = (MyType) s;                  Console.WriteLine("as int: {0}", (int)numeral);         Console.WriteLine("as string: {0}", (string)numeral);                  int s2 = numeral;     } } public static explicit operator MyType(short value) public static implicit operator short(MyType myType) as int: 0 public static implicit operator string(MyType myType) as string: String value: public static implicit operator short(MyType myType)