Object.ReferenceEquals() Method in C# - GeeksforGeeks

10 Apr, 2019
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)// Methodusing 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");    }}
null is equal to null

Example 2:
// C# program to demonstrate the// Object.ReferenceEquals(Object, Object)// Methodusing 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);    }}
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:
https://docs.microsoft.com/en-us/dotnet/api/system.object.referenceequals?view=netcore-2.1
RohitPrasad3
CSharp Object Class
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Program to calculate Electricity Bill
Linked List Implementation in C#
C# | How to insert an element in an Array?
HashSet in C# with Examples
Lambda Expressions in C#
Main Method in C#
Difference between Hashtable and Dictionary in C#
C# | Dictionary.Add() Method
Collections in C#
Different Ways to Convert Char Array to String in C#