Nullable<T>.Equals(Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示当前 Nullable<T> 对象是否与指定的对象相等。
public:
 override bool Equals(System::Object ^ other);public override bool Equals (object other);public override bool Equals (object? other);override this.Equals : obj -> boolPublic Overrides Function Equals (other As Object) As Boolean参数
- other
- Object
一个对象。
返回
如果 other 等于当前的 Nullable<T> 对象,则为 true;否则为 false。
此表描述如何定义所比较值的相等性:
| 返回值 | 描述 | 
|---|---|
| true | HasValue 属性为 false,并且other参数为null(也就是说,根据定义,两个空值相等),或者,HasValue 属性为true,并且 Value 属性返回的值等于other参数。 | 
| false | 当前 Nullable<T> 结构的 HasValue 属性为 true并且other参数为null。或者,当前 Nullable<T> 结构的 HasValue 属性为false,并且other参数不为null。或者,当前 Nullable<T> 结构的 HasValue 属性为true,并且 Value 属性返回的值不等于other参数。 | 
示例
下面的代码示例确定对象和 Nullable<T> 对象是否等于当前 Nullable<T> 对象。
// This code example demonstrates the Nullable<T>.Equals
// methods.
using System;
class Sample
{
    public static void Main()
    {
    int? nullInt1 = 100;
    int? nullInt2 = 200;
    object myObj;
// Determine if two nullable of System.Int32 values are equal.
// The nullable objects have different values.
    Console.Write("1) nullInt1 and nullInt2 ");
    if (nullInt1.Equals(nullInt2))
        Console.Write("are");
    else
        Console.Write("are not");
    Console.WriteLine(" equal.");
// Determine if a nullable of System.Int32 and an object
// are equal. The object contains the boxed value of the
// nullable object.
    myObj = (object)nullInt1;
    Console.Write("2) nullInt1 and myObj ");
    if (nullInt1.Equals(myObj))
        Console.Write("are");
    else
        Console.Write("are not");
    Console.WriteLine(" equal.");
    }
}
/*
This code example produces the following results:
1) nullInt1 and nullInt2 are not equal.
2) nullInt1 and myObj are equal.
*/
// This code example demonstrates the Nullable<T>.Equals
// methods.
open System
let nullInt1 = Nullable 100
let nullInt2 = Nullable 200
// Determine if two nullable of System.Int32 values are equal.
// The nullable objects have different values.
printf "1) nullInt1 and nullInt2 "
if nullInt1.Equals nullInt1 then
    printf "are"
else
    printf "are not"
printfn " equal."
// Determine if a nullable of System.Int32 and an object
// are equal. The object contains the boxed value of the
// nullable object.
let myObj = box nullInt1
printf "2) nullInt1 and myObj "
if nullInt1.Equals myObj then
    printf "are"
else
    printf "are not"
printfn " equal."
// This code example produces the following results:
//     1) nullInt1 and nullInt2 are not equal.
//     2) nullInt1 and myObj are equal.
' This code example demonstrates the Nullable(Of T).Equals 
' methods.
Class Sample
    Public Shared Sub Main() 
        Dim nullInt1 As Nullable(Of Integer) = 100 
        Dim nullInt2 As Nullable(Of Integer) = 200
        Dim myObj As Object
        
    ' Determine if two nullable of System.Int32 values are equal. 
    ' The nullable objects have different values.
        Console.Write("1) nullInt1 and nullInt2 ")
        If nullInt1.Equals(nullInt2) Then
            Console.Write("are")
        Else
            Console.Write("are not")
        End If
        Console.WriteLine(" equal.")
        
    ' Determine if a nullable of System.Int32 and an object 
    ' are equal. The object contains the boxed value of the
    ' nullable object.
        myObj = CType(nullInt1, Object)
        Console.Write("2) nullInt1 and myObj ")
        If nullInt1.Equals(myObj) Then
            Console.Write("are")
        Else
            Console.Write("are not")
        End If
        Console.WriteLine(" equal.")
    End Sub
End Class
'
'This code example produces the following results:
'
'1) nullInt1 and nullInt2 are not equal.
'2) nullInt1 and myObj are equal.
'
注解
HasValue如果当前Nullable<T>结构的属性不是true且other参数不是null,则通过将参数Equals传递给other当前Nullable<T>结构的基础值的方法来确定相等性。