Mega Code Archive

 
Categories / C# Tutorial / Development
 

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 );     } } ( 12.35 : 1234.56 ) ( 12,35 : 1234,56 ) Debugging output: Complex real: 12.3456 imaginary: 1234.56