Open In App

Object.ReferenceEquals() Method in C#

Last Updated : 22 Nov, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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 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: 

csharp




// 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: 

csharp




// 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, 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:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads