explicit/implicit operator for Complex : Cast operator : Operator Overload C# Examples


C# Examples » Operator Overload » Cast operator »

 

explicit/implicit operator for Complex









    
using  System;

public  struct  Complex
{
        public  Complex(  double  real,  double  imaginary  )  {
                this.real  =  real;
                this.imaginary  =  imaginary;
        }

        //  System.Object  override
        public  override  string  ToString()  {
                return  String.Format(  "({0},  {1})",  real,  imaginary  );
        }

        public  double  Magnitude  {
                get  {
                        return  Math.Sqrt(  Math.Pow(this.real,  2)  +  Math.Pow(this.imaginary,  2)  );
                }
        }

        public  static  implicit  operator  Complex(  double  d  )  {
                return  new  Complex(  d,  0  );
        }

        public  static  explicit  operator  double(  Complex  c  )  {
                return  c.Magnitude;
        }

        private  double  real;
        private  double  imaginary;
}

public  class  EntryPoint
{
        static  void  Main()  {
                Complex  cpx1  =  new  Complex(  1.0,  3.0  );
                Complex  cpx2  =  2.0;                  //  Use  implicit  operator.

                double  d  =  (double)  cpx1;      //  Use  explicit  operator.

                Console.WriteLine(  "cpx1  =  {0}",  cpx1  );
                Console.WriteLine(  "cpx2  =  {0}",  cpx2  );
                Console.WriteLine(  "d  =  {0}",  d  );
        }
}
    
   
  
   



Output

cpx1 = (1, 3)
cpx2 = (2, 0)
d = 3.16227766016838


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Operator Overload
» Cast operator