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