Object.ReferenceEquals() Method in C#

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

null is equal to null

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : RohitPrasad3



Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.