当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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#。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。