UInt64.Equals Methode

Definition

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt oder UInt64 ist.

Überlädt

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

Equals(UInt64)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen UInt64-Wert ist.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

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

Parameter

obj
Object

Ein mit dieser Instanz zu vergleichendes Objekt.

Gibt zurück

Boolean

true, wenn obj eine Instanz von UInt64 ist, deren Wert gleich dem Wert dieser Instanz ist, andernfalls false.

Beispiele

Das folgende Beispiel veranschaulicht die Equals Methode.

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
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

Hinweise für Aufrufer

Die Auflösung von Compilerüberladungen kann einen offensichtlichen Unterschied im Verhalten der beiden Equals(UInt64) Methodenüberladungen berücksichtigen. Wenn eine implizite Konvertierung zwischen dem obj Argument und einem definiert ist und das Argument nicht als UInt64 typisiert Object ist, führen Compiler eine implizite Konvertierung aus und rufen die Equals(UInt64) -Methode auf. Andernfalls rufen sie die Equals(Object) -Methode auf, die immer false zurückgibt, wenn ihr Argument kein Wert obj UInt64 ist. Das folgende Beispiel veranschaulicht den Unterschied im Verhalten zwischen den beiden Methodenüberladungen. Im Fall der Byte Werte , und gibt der erste Vergleich UInt16 UInt32 zurück, da der Compiler automatisch eine true erweiternde Konvertierung ausführt und die Equals(UInt64) -Methode aufruft, während der zweite Vergleich zurückgibt, false da der Compiler die -Methode aufruft. Equals(Object)

using System;

public class Example
{
   static ulong value = 112;
   
   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
      TestObjectForEquality(short1);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
      TestObjectForEquality(int1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      uint uint1 = 112;
      Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1));
      TestObjectForEquality(uint1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,20}", value.Equals(dbl1));
      TestObjectForEquality(dbl1);
   }

   private static void TestObjectForEquality(Object obj)
   {
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj));
   }
}
// The example displays the following output:
//       value = byte1:             True
//       112 (UInt64) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt64) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt64) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt64) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt64) = 112 (UInt16): False
//
//       value = uint1:               True
//       112 (UInt64) = 112 (UInt32): False
//
//       value = dec1:                 False
//       112 (UInt64) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt64) = 112 (Double): False

Siehe auch

Gilt für

Equals(UInt64)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen UInt64-Wert ist.

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

Parameter

obj
UInt64

Ein mit dieser Instanz zu vergleichender UInt64-Wert.

Gibt zurück

Boolean

true, wenn obj über denselben Wert wie diese Instanz verfügt, andernfalls false.

Implementiert

Beispiele

Das folgende Beispiel veranschaulicht die Equals Methode.

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
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

Hinweise

Diese Methode implementiert die System.IEquatable<T> -Schnittstelle und führt etwas besser aus, als Equals weil sie den -Parameter nicht in ein -Objekt konvertieren obj muss.

Hinweise für Aufrufer

Die Auflösung von Compilerüberladungen kann einen offensichtlichen Unterschied im Verhalten der beiden Equals(UInt64) Methodenüberladungen berücksichtigen. Wenn eine implizite Konvertierung zwischen dem obj Argument und einem definiert ist und das Argument nicht als UInt64 typisiert Object ist, führen Compiler eine implizite Konvertierung aus und rufen die Equals(UInt64) -Methode auf. Andernfalls rufen sie die Equals(Object) -Methode auf, die immer false zurückgibt, wenn ihr Argument kein Wert obj UInt64 ist. Das folgende Beispiel veranschaulicht den Unterschied im Verhalten zwischen den beiden Methodenüberladungen. Im Fall der Byte Werte , und gibt der erste Vergleich UInt16 UInt32 zurück, da der Compiler automatisch eine true erweiternde Konvertierung ausführt und die Equals(UInt64) -Methode aufruft, während der zweite Vergleich zurückgibt, false da der Compiler die -Methode aufruft. Equals(Object)

using System;

public class Example
{
   static ulong value = 112;
   
   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
      TestObjectForEquality(short1);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
      TestObjectForEquality(int1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      uint uint1 = 112;
      Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1));
      TestObjectForEquality(uint1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,20}", value.Equals(dbl1));
      TestObjectForEquality(dbl1);
   }

   private static void TestObjectForEquality(Object obj)
   {
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj));
   }
}
// The example displays the following output:
//       value = byte1:             True
//       112 (UInt64) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt64) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt64) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt64) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt64) = 112 (UInt16): False
//
//       value = uint1:               True
//       112 (UInt64) = 112 (UInt32): False
//
//       value = dec1:                 False
//       112 (UInt64) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt64) = 112 (Double): False

Gilt für