Skip to content
Related Articles

Related Articles

Improve Article

Object.ReferenceEquals() Method in C#

  • Last Updated : 10 Apr, 2019
Geek Week

Object.ReferenceEquals() Method is used to determine whether the specified Object instances are the same instance or not. This method cannot be overridden. So, if a user is going to test the two objects references for equality and he is not sure about the implementation of the Equals method, then he can call the ReferenceEquals method.

Syntax: public static bool ReferenceEquals (object ob1, object ob2);

Parameters:
ob1: It is the first object to compare.
ob2: It is the second object to compare.

Return Value: This method returns true if ob1 is the same instance as ob2 or if both are null otherwise, it returns false.

Below programs illustrate the use of Object.ReferenceEquals() Method:



Example 1:




// C# program to demonstrate the
// Object.ReferenceEquals(object)
// Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing value1
        object v1 = null;
  
        // Declaring and initializing value2
        object v2 = null;
  
        // using ReferenceEquals(object,
        // object) method
        bool status = Object.ReferenceEquals(v1, v2);
  
        // checking the status
        if (status)
            Console.WriteLine("null is equal to null");
        else
            Console.WriteLine("null is not equal to null");
    }
}
Output:
null is equal to null

Example 2:




// C# program to demonstrate the
// Object.ReferenceEquals(Object, Object)
// Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        object p = new Object();
        object q = null;
  
        // calling get() method
        get(p, null);
  
        // assigning p to q
        q = p;
        get(p, q);
        get(q, null);
    }
  
    // defining get() method
    public static void get(object v1,
                           object v2)
    {
  
        // using ReferenceEquals(Object) method
        bool status = Object.ReferenceEquals(v1, v2);
  
        // checking the status
        if (status)
            Console.WriteLine("{0} is equal to {1}",
                                            v1, v2);
        else
            Console.WriteLine("{0} is not equal to {1}",
                                                v1, v2);
    }
}
Output:
System.Object is not equal to 
System.Object is equal to System.Object
System.Object is not equal to 

Note: Here, null will never be printed in the output.

Important Points:

  • If both ob1 and ob2 represent the same instance of a value type, the then this method nevertheless returns false.
  • If ob1 and ob2 are strings, then this method will return true if the string is interned because this method will never perform a test for value equality.

Reference:




My Personal Notes arrow_drop_up
Recommended Articles
Page :