Nullable<T>.Equals(Object) Метод

Определение

Указывает, равен ли текущий объект 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 -> bool
Public Overrides Function Equals (other As Object) As Boolean

Параметры

other
Object

Объект.

Возвращаемое значение

Boolean

true, если значение параметра other равно текущему объекту Nullable<T>, в противном случае — false.

В следующей таблице указано, как определяется равенство сравниваемых значений.

Возвращаемое значение Описание
true Свойству HasValue задано значение false, а параметру other — null (то есть два нулевых значения равны по определению). Либо свойство HasValue имеет значение true, а значение, возвращаемое свойством Value, равно значению параметра other.
false Свойство HasValue для текущей структуры Nullable<T> равно true, а параметр other — null. Или же Свойство HasValue для текущей структуры Nullable<T> равно false, а параметр other не равен null. Либо свойство HasValue для текущей структуры Nullable<T> равно 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(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 равенство определяется путем передачи other параметра Equals методу базового значения текущей Nullable<T> структуры.

Применяется к