UInt64.Equals Méthode

Définition

Retourne une valeur indiquant si cette instance est égale à un objet spécifié ou à UInt64.

Surcharges

Equals(Object)

Retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

Equals(UInt64)

Retourne une valeur indiquant si cette instance est égale à une valeur UInt64 spécifiée.

Equals(Object)

Retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

public:
 override bool Equals(System::Object ^ obj);
public override bool Equals (object obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean

Paramètres

obj
Object

Objet à comparer à cette instance.

Retours

Boolean

true si obj est une instance de UInt64 et est égal à la valeur de cette instance ; sinon, false.

Exemples

L’exemple suivant illustre la Equals méthode.

using System;

public class Example
{
   public static void Main()
   {
      object[] values = { (short) 10, (short) 20, 10, 20,
                          10L, 20L, 10D, 20D, (ushort) 10,
                          (ushort) 20, 10U, 20U,
                          10ul, 20ul };
      UInt64 baseValue = 20;
      String baseType = baseValue.GetType().Name;
      
      foreach (var value in values)
         Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                           baseValue, baseType,
                           value, value.GetType().Name,
                           baseValue.Equals(value));
   }
}
// The example displays the following output:
//       20 (UInt64) = 10 (Int16): False
//       20 (UInt64) = 20 (Int16): False
//       20 (UInt64) = 10 (Int32): False
//       20 (UInt64) = 20 (Int32): False
//       20 (UInt64) = 10 (Int64): False
//       20 (UInt64) = 20 (Int64): False
//       20 (UInt64) = 10 (Double): False
//       20 (UInt64) = 20 (Double): False
//       20 (UInt64) = 10 (UInt16): False
//       20 (UInt64) = 20 (UInt16): False
//       20 (UInt64) = 10 (UInt32): False
//       20 (UInt64) = 20 (UInt32): False
//       20 (UInt64) = 10 (UInt64): False
//       20 (UInt64) = 20 (UInt64): True
let values: obj[] = 
    [| 10s; 20s; 10; 20
       10L; 20L; 10.; 20.; 10us
       20us; 10u; 20u
       10uL; 20uL |]
let baseValue = 20uL
let baseType = baseValue.GetType().Name

for value in values do
    printfn $"{baseValue} ({baseType}) = {value} ({value.GetType().Name}): {value.GetType().Name}"
// The example displays the following output:
//       20 (UInt64) = 10 (Int16): False
//       20 (UInt64) = 20 (Int16): False
//       20 (UInt64) = 10 (Int32): False
//       20 (UInt64) = 20 (Int32): False
//       20 (UInt64) = 10 (Int64): False
//       20 (UInt64) = 20 (Int64): False
//       20 (UInt64) = 10 (Double): False
//       20 (UInt64) = 20 (Double): False
//       20 (UInt64) = 10 (UInt16): False
//       20 (UInt64) = 20 (UInt16): False
//       20 (UInt64) = 10 (UInt32): False
//       20 (UInt64) = 20 (UInt32): False
//       20 (UInt64) = 10 (UInt64): False
//       20 (UInt64) = 20 (UInt64): True
Module Example
   Public Sub Main()
      Dim values() As Object = { 10S, 20S, 10I, 20I, 10L, 20L,
                                 10R, 20R, 10US, 20US, 10UI, 20UI,
                                 10UL, 20UL }
      Dim baseValue As UInt64 = 20
      Dim baseType As String = baseValue.GetType().Name
      
      For Each value In values
         Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                           baseValue, baseType,
                           value, value.GetType().Name,
                           baseValue.Equals(value))
      Next
   End Sub
End Module
' The example displays the following output:
'       20 (UInt64) = 10 (Int16): False
'       20 (UInt64) = 20 (Int16): False
'       20 (UInt64) = 10 (Int32): False
'       20 (UInt64) = 20 (Int32): False
'       20 (UInt64) = 10 (Int64): False
'       20 (UInt64) = 20 (Int64): False
'       20 (UInt64) = 10 (Double): False
'       20 (UInt64) = 20 (Double): False
'       20 (UInt64) = 10 (UInt16): False
'       20 (UInt64) = 20 (UInt16): False
'       20 (UInt64) = 10 (UInt32): False
'       20 (UInt64) = 20 (UInt32): False
'       20 (UInt64) = 10 (UInt64): False
'       20 (UInt64) = 20 (UInt64): True

Notes pour les appelants

La résolution de surcharge du compilateur peut tenir compte d’une différence apparente dans le comportement des deux Equals(UInt64) surcharges de méthode. Si une conversion implicite entre l’argument obj et un UInt64 est défini et que l’argument n’est pas typé comme un Objectcompilateur, les compilateurs effectuent une conversion implicite et appellent la Equals(UInt64) méthode. Sinon, ils appellent la Equals(Object) méthode, qui retourne false toujours si son obj argument n’est pas une UInt64 valeur. L’exemple suivant illustre la différence de comportement entre les deux surcharges de méthode. Dans le cas des Bytevaleurs et des valeurs UInt32 UInt16, la première comparaison retournetrue, car le compilateur effectue automatiquement une conversion étendue et appelle la Equals(UInt64) méthode, tandis que la deuxième comparaison retourne false parce que le compilateur appelle la Equals(Object) méthode.

::code language="csharp » source="~/snippets/csharp/System/UInt64/Equals/equalsoverl.cs » id="Snippet2 »::: :::code language="fsharp » source="~/snippets/fsharp/System/UInt64/Equals/equalsoverl.fs » id="Snippet2 »::: :::code language="vb » source="~/snippets/visualbasic/VS_Snippets_CLR_System/system.uint64.equals/vb/equalsoverl.vb » id="Snippet2 »:::

Voir aussi

S’applique à

Equals(UInt64)

Retourne une valeur indiquant si cette instance est égale à une valeur UInt64 spécifiée.

public:
 virtual bool Equals(System::UInt64 obj);
public bool Equals (ulong obj);
override this.Equals : uint64 -> bool
Public Function Equals (obj As ULong) As Boolean

Paramètres

obj
UInt64

Valeur UInt64 à comparer à cette instance.

Retours

Boolean

true si obj possède la même valeur que cette instance ; sinon, false.

Implémente

Exemples

L’exemple suivant illustre la Equals méthode.

using namespace System;

int main()
{
      UInt64 value1 = 50;
      UInt64 value2 = 50;

      // Display the values.
        Console::WriteLine("value1:   Type: {0}   Value: {1}",
                           value1.GetType()->Name, value1);
        Console::WriteLine("value2:   Type: {0}   Value: {1}",
                         value2.GetType()->Name, value2);

        // Compare the two values.
        Console::WriteLine("value1 and value2 are equal: {0}",
                           value1.Equals(value2));
}
// The example displays the following output:
//       value1:   Type: UInt64   Value: 50
//       value2:   Type: UInt64   Value: 50
//       value1 and value2 are equal: True
using System;

class Example
{
     public static void Main()
     {
         UInt64 value1 = 50;
         UInt64 value2 = 50;

         // Display the values.
        Console.WriteLine("value1:   Type: {0}   Value: {1}",
                          value1.GetType().Name, value1);
        Console.WriteLine("value2:   Type: {0}   Value: {1}",
                        value2.GetType().Name, value2);

        // Compare the two values.
        Console.WriteLine("value1 and value2 are equal: {0}",
                          value1.Equals(value2));
     }
}
// The example displays the following output:
//       value1:   Type: UInt64   Value: 50
//       value2:   Type: UInt64   Value: 50
//       value1 and value2 are equal: True
let value1 = 50uL
let value2 = 50uL

// Display the values.
printfn $"value1:   Type: {value1.GetType().Name}   Value: {value1}"
printfn $"value2:   Type: {value2.GetType().Name}   Value: {value2}"

// Compare the two values.
printfn $"value1 and value2 are equal: {value1.Equals value2}"
// The example displays the following output:
//       value1:   Type: UInt64   Value: 50
//       value2:   Type: UInt64   Value: 50
//       value1 and value2 are equal: True
Class Example
   Public Shared Sub Main()
      Dim value1 As UInt64 = 50
      Dim value2 As UInt64 = 50
      
      'Display the values.
      Console.WriteLine("value1:   Type: {0}   Value: {1}",
                        value1.GetType().Name, value1)
      Console.WriteLine("value2:   Type: {0}   Value: {1}",
                        value2.GetType().Name, value2)

      ' Compare the two values.
      Console.WriteLine("value1 and value2 are equal: {0}",
                        value1.Equals(value2))
   End Sub
End Class 
' The example displays the following output:
'       value1:   Type: UInt64   Value: 50
'       value2:   Type: UInt64   Value: 50
'       value1 and value2 are equal: True

Remarques

Cette méthode implémente l’interface System.IEquatable<T> et effectue légèrement mieux que Equals parce qu’elle n’a pas besoin de convertir le obj paramètre en objet.

Notes pour les appelants

La résolution de surcharge du compilateur peut tenir compte d’une différence apparente dans le comportement des deux Equals(UInt64) surcharges de méthode. Si une conversion implicite entre l’argument obj et un UInt64 est défini et que l’argument n’est pas typé comme un Objectcompilateur, les compilateurs effectuent une conversion implicite et appellent la Equals(UInt64) méthode. Sinon, ils appellent la Equals(Object) méthode, qui retourne false toujours si son obj argument n’est pas une UInt64 valeur. L’exemple suivant illustre la différence de comportement entre les deux surcharges de méthode. Dans le cas des Bytevaleurs et des valeurs UInt32 UInt16, la première comparaison retournetrue, car le compilateur effectue automatiquement une conversion étendue et appelle la Equals(UInt64) méthode, tandis que la deuxième comparaison retourne false parce que le compilateur appelle la Equals(Object) méthode.

::code language="csharp » source="~/snippets/csharp/System/UInt64/Equals/equalsoverl.cs » id="Snippet2 »::: :::code language="fsharp » source="~/snippets/fsharp/System/UInt64/Equals/equalsoverl.fs » id="Snippet2 »::: :::code language="vb » source="~/snippets/visualbasic/VS_Snippets_CLR_System/system.uint64.equals/vb/equalsoverl.vb » id="Snippet2 »:::

S’applique à