Create customized format for Complex : Custom Format : Development C# Examples


C# Examples » Development » Custom Format »

 

Create customized format for Complex









    
using  System;
using  System.Text;
using  System.Globalization;

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

        public  string  ToString(  string  format,IFormatProvider  formatProvider  )  {
                StringBuilder  sb  =  new  StringBuilder();

                if(  format  ==  "DBG"  )  {
                        sb.Append(  this.GetType().ToString()  +  "\n"  );
                        sb.AppendFormat(  "\treal:\t{0}\n",  real  );
                        sb.AppendFormat(  "\timaginary:\t{0}\n",  imaginary  );
                }  else  {
                        sb.Append(  "(  "  );
                        sb.Append(  real.ToString(format,  formatProvider)  );
                        sb.Append(  "  :  "  );
                        sb.Append(  imaginary.ToString(format,  formatProvider)  );
                        sb.Append(  "  )"  );
                }

                return  sb.ToString();
        }

        private  double  real;
        private  double  imaginary;
}

public  class  MainClass
{
        static  void  Main()  {
                CultureInfo  local  =  CultureInfo.CurrentCulture;
                CultureInfo  germany  =  new  CultureInfo(  "de-DE"  );

                Complex  cpx  =  new  Complex(  12.3456,  1234.56  );

                string  strCpx  =  cpx.ToString(  "F",  local  );
                Console.WriteLine(  strCpx  );

                strCpx  =  cpx.ToString(  "F",  germany  );
                Console.WriteLine(  strCpx  );

                Console.WriteLine(  "\nDebugging  output:\n{0:DBG}",  cpx  );
        }
}
    
   
  
   



Output

( 12.35 : 1234.56 )
( 12,35 : 1234,56 )

Debugging output:
Complex
        real:   12.3456
        imaginary:      1234.56


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Development
» Custom Format