當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Object.ReferenceEquals()用法及代碼示例


Object.ReferenceEquals()方法用於確定指定的Object實例是否為同一實例。此方法不能被覆蓋。因此,如果用戶要測試兩個對象引用是否相等,並且不確定是否要執行Equals方法,則可以調用ReferenceEquals方法。

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

參數:
ob1:這是要比較的第一個對象。
ob2:這是要比較的第二個對象。


返回值:如果ob1與ob2是相同的實例,則此方法返回true,否則,如果兩者均為null,則返回false。

以下示例程序旨在說明Object.ReferenceEquals()方法的使用:

示例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

示例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 

注意:在這裏,null永遠不會輸出到輸出中。

重要事項:

  • 如果ob1和ob2都代表值類型的相同實例,則此方法仍然返回false。
  • 如果ob1和ob2是字符串,則在字符串為interned的情況下此方法將返回true,因為此方法將永遠不會執行值相等性測試。

參考:



相關用法


注:本文由純淨天空篩選整理自RohitPrasad3大神的英文原創作品 Object.ReferenceEquals() Method in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。