Nullable<T>.Equals(Object) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Indicates whether the current Nullable<T> object is equal to a specified object.
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 BooleanParameters
- other
- Object
An object.
Returns
true if the other parameter is equal to the current Nullable<T> object; otherwise, false.
This table describes how equality is defined for the compared values:
| Return Value | Description | 
|---|---|
| true | The HasValue property is false, and theotherparameter isnull(that is, two null values are equal by definition), OR the HasValue property istrue, and the value returned by the Value property is equal to theotherparameter. | 
| false | The HasValue property for the current Nullable<T> structure is true, and theotherparameter isnull, OR the HasValue property for the current Nullable<T> structure isfalse, and theotherparameter is notnull, OR the HasValue property for the current Nullable<T> structure istrue, and the value returned by the Value property is not equal to theotherparameter. | 
Examples
The following code example determines whether an object and a Nullable<T> object are equal to the current Nullable<T> object.
// 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.
'
Remarks
If the HasValue property of the current Nullable<T> structure is true and the other argument is not null, equality is determined by passing the other parameter to the Equals method of the underlying value of the current Nullable<T> structure.