Csharp/CSharp Tutorial/Operator Overload/bool operator
bool operator for Complex
<source lang="csharp">using System; public struct Complex {
public Complex( double real, double imaginary ) { this.real = real; this.imaginary = imaginary; } 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 bool( Complex c ) { return (c.real != 0) || (c.imaginary != 0); } private double real; private double imaginary;
} public class MainClass {
static void Main() { Complex cpx1 = new Complex( 1.0, 3.0 ); if( cpx1 ) { Console.WriteLine( "cpx1 is true" ); } else { Console.WriteLine( "cpx1 is false" ); } Complex cpx2 = new Complex( 0, 0 ); Console.WriteLine( "cpx2 is {0}", cpx2 ? "true" : "false" ); }
}</source>
cpx1 is true cpx2 is false