Reference type equals : Object Reference : Class C# Examples


C# Examples » Class » Object Reference »

 

Reference type equals









    
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)  );
      }
}
    
   
  
   



Output

Result of Equality is True
Identity of references is False
Identity of references is False


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Class
» Object Reference