Reference type equals: complex number : Object Reference « Class « C# / CSharp Tutorial






public class ComplexNumber
{
   public ComplexNumber( int real, int imaginary )
   {
      this.real = real;
      this.imaginary = imaginary;
   }

   public override bool Equals( object obj )
   {
      ComplexNumber other = obj as ComplexNumber;

      if( other == null )
      {
         return false;
      }

      return (this.real == other.real) && (this.imaginary == other.imaginary);
   }

   public override int GetHashCode()
   {
      return (int) real ^ (int) imaginary;
   }

   public static bool operator==( ComplexNumber me, ComplexNumber other )
   {
      return Equals( me, other );
   }

   public static bool operator!=( ComplexNumber me, ComplexNumber other )
   {
      return Equals( me, other );
   }
   
   private double real;
   private double imaginary;
}

public class MainClass
{
   static void Main()
   {
      ComplexNumber referenceA = new ComplexNumber( 1, 2 );
      ComplexNumber referenceB = new ComplexNumber( 1, 2 );

      System.Console.WriteLine( "Result of Equality is {0}",referenceA == referenceB );

      System.Console.WriteLine( "Identity of references is {0}",(object) referenceA == (object) referenceB );
      System.Console.WriteLine( "Identity of references is {0}",ReferenceEquals(referenceA, referenceB) );
   }
}
Result of Equality is True
Identity of references is False
Identity of references is False








7.3.Object Reference
7.3.1.Declare class fields and methods
7.3.2.Declare a House object reference named myHouse
7.3.3.Creating a House object and assigning its memory location to myHouse
7.3.4.Assign values to the House object's fields using object renerence
7.3.5.Display the field values using object reference
7.3.6.Declare another House object reference and create another House object
7.3.7.Change the object referenced by the myHouse object reference to the object referenced by yourHouse
7.3.8.Reference type equals: complex number
7.3.9.Reference equals
7.3.10.Reference a static member function without using the class name
7.3.11.Overridden Equals()
7.3.12.Reference an object by interface and class
7.3.13.Pass reference type variable without 'out' and 'ref'
7.3.14.Use interface as reference
7.3.15.Reference one object by multiple interfaces
7.3.16.Class comparison