User-Defined Conversions : Conversion Operator Overload : Operator Overload C# Examples


C# Examples » Operator Overload » Conversion 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;
        }
}
    
   
  
   



Output

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)


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Operator Overload
» Conversion Operator Overload