Teilen über


UInt32.Equals Methode

Definition

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

Überlädt

Equals(Object)

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

Equals(UInt32)

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

Equals(Object)

Quelle:
UInt32.cs
Quelle:
UInt32.cs
Quelle:
UInt32.cs

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 Objekt, das mit dieser Instanz verglichen werden soll.

Gibt zurück

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

Beispiele

Im folgenden Codebeispiel wird die Equals -Methode veranschaulicht.

UInt32 myVariable1 = 20;
UInt32 myVariable2 = 20;

// Display the declaring type.
Console::WriteLine( "\nType of 'myVariable1' is '{0}' and  value is : {1}", myVariable1.GetType(), myVariable1 );
Console::WriteLine( "Type of 'myVariable2' is '{0}' and  value is : {1}", myVariable2.GetType(), myVariable2 );

// Compare 'myVariable1' instance with 'myVariable2' Object.
if ( myVariable1.Equals( myVariable2 ) )
      Console::WriteLine( "\nStructures 'myVariable1' and 'myVariable2' are equal" );
else
      Console::WriteLine( "\nStructures 'myVariable1' and 'myVariable2' are not equal" );
UInt32 myVariable1 = 20;
UInt32 myVariable2 = 20;

// Display the declaring type.
Console.WriteLine("\nType of 'myVariable1' is '{0}' and"+
     " value is :{1}",myVariable1.GetType(), myVariable1);
Console.WriteLine("Type of 'myVariable2' is '{0}' and"+
     " value is :{1}",myVariable2.GetType(), myVariable2);

// Compare 'myVariable1' instance with 'myVariable2' Object.
if( myVariable1.Equals( myVariable2 ) )
   Console.WriteLine( "\nStructures 'myVariable1' and "+
         "'myVariable2' are equal");
else
   Console.WriteLine( "\nStructures 'myVariable1' and "+
         "'myVariable2' are not equal");
let myVariable1 = 20u
let myVariable2 = 20u

// Display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is :{myVariable1}"
printfn $"Type of 'myVariable2' is '{myVariable2.GetType()}' and value is :{myVariable2}"

// Compare 'myVariable1' instance with 'myVariable2' Object.
if myVariable1.Equals myVariable2 then
    printfn $"\nStructures 'myVariable1' and 'myVariable2' are equal"
else
    printfn $"\nStructures 'myVariable1' and 'myVariable2' are not equal"
Dim myVariable1 As UInt32 = UInt32.Parse(20)
Dim myVariable2 As UInt32 = UInt32.Parse(20)

' Display the declaring type.
Console.WriteLine(ControlChars.NewLine + "Type of 'myVariable1' is '{0}' and" +  _ 
         " value is :{1}", myVariable1.GetType().ToString(), myVariable1.ToString())
Console.WriteLine("Type of 'myVariable2' is '{0}' and" +  _
      " value is :{1}", myVariable2.GetType().ToString(), myVariable2.ToString())
' Compare 'myVariable1' instance with 'myVariable2' Object.
If myVariable1.Equals(myVariable2) Then
   Console.WriteLine(ControlChars.NewLine + "Structures 'myVariable1' and" +  _
      " 'myVariable2' are equal")
Else
   Console.WriteLine(ControlChars.NewLine + "Structures 'myVariable1' and" +  _
         " 'myVariable2' are not equal")
End If

Hinweise für Aufrufer

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

using System;

public class Example
{
   static uint 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);

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

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

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

      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 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
let value = 112u

let testObjectForEquality (obj: obj) =
    printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"

let byte1 = 112uy
printfn $"value = byte1: {value.Equals byte1,16}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1

let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1

let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1

let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1

let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1

// The example displays the following output:
//       value = byte1:             True
//       112 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
Module Example
   Dim value As UInt32 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim long1 As Long = 112
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
      TestObjectForEquality(long1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim ulong1 As ULong = 112
      Console.WriteLine("value = ulong1: {0,19}", value.Equals(ulong1))
      TestObjectForEquality(ulong1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,20}", value.Equals(dbl1))
      TestObjectForEquality(dbl1)
   End Sub
   
   Private Sub TestObjectForEquality(obj As Object)
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj))
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       value = byte1:             True
'       112 (UInt32) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt32) = 112 (Int16): False
'
'       value = long1:              False
'       112 (UInt32) = 112 (Int64): False
'
'       value = sbyte1:             False
'       112 (UInt32) = 112 (SByte): False
'
'       value = ushort1:             True
'       112 (UInt32) = 112 (UInt16): False
'
'       value = ulong1:               False
'       112 (UInt32) = 112 (UInt64): False
'
'       value = dec1:                 False
'       112 (UInt32) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt32) = 112 (Double): False

Weitere Informationen

Gilt für:

Equals(UInt32)

Quelle:
UInt32.cs
Quelle:
UInt32.cs
Quelle:
UInt32.cs

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

public:
 virtual bool Equals(System::UInt32 obj);
public bool Equals (uint obj);
override this.Equals : uint32 -> bool
Public Function Equals (obj As UInteger) As Boolean

Parameter

obj
UInt32

Ein mit dieser Instanz zu vergleichender Wert.

Gibt zurück

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

Implementiert

Hinweise

Diese Methode implementiert die System.IEquatable<T> Schnittstelle und ist etwas besser als die Equals(Object) -Methode, da sie den obj Parameter nicht in ein Objekt konvertieren muss.

Hinweise für Aufrufer

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

using System;

public class Example
{
   static uint 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);

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

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

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

      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 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
let value = 112u

let testObjectForEquality (obj: obj) =
    printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"

let byte1 = 112uy
printfn $"value = byte1: {value.Equals byte1,16}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1

let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1

let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1

let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1

let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1

// The example displays the following output:
//       value = byte1:             True
//       112 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
Module Example
   Dim value As UInt32 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim long1 As Long = 112
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
      TestObjectForEquality(long1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim ulong1 As ULong = 112
      Console.WriteLine("value = ulong1: {0,19}", value.Equals(ulong1))
      TestObjectForEquality(ulong1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,20}", value.Equals(dbl1))
      TestObjectForEquality(dbl1)
   End Sub
   
   Private Sub TestObjectForEquality(obj As Object)
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj))
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       value = byte1:             True
'       112 (UInt32) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt32) = 112 (Int16): False
'
'       value = long1:              False
'       112 (UInt32) = 112 (Int64): False
'
'       value = sbyte1:             False
'       112 (UInt32) = 112 (SByte): False
'
'       value = ushort1:             True
'       112 (UInt32) = 112 (UInt16): False
'
'       value = ulong1:               False
'       112 (UInt32) = 112 (UInt64): False
'
'       value = dec1:                 False
'       112 (UInt32) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt32) = 112 (Double): False

Gilt für: