Teilen über


UInt16.Equals Methode

Definition

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

Überlädt

Equals(Object)

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

Equals(UInt16)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen UInt16-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 UInt16 ist, deren Wert gleich dem Wert dieser Instanz ist, andernfalls false.

Beispiele

Das folgende Beispiel veranschaulicht die Equals Methode.

UInt16 myVariable1 = 10;
UInt16 myVariable2 = 10;

//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" );
UInt16 myVariable1 = 10;
UInt16 myVariable2 = 10;

//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");
   Dim myVariable1 As UInt16 = UInt16.Parse(10)
   Dim myVariable2 As UInt16 = UInt16.Parse(10)

   ' 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(UInt16) Methodenüberladungen berücksichtigen. Wenn eine implizite Konvertierung zwischen dem Argument und einem definiert ist und das Argument nicht als typiert ist, führen Compiler eine implizite Konvertierung aus und rufen obj UInt16 die Object -Methode Equals(UInt16) auf. Andernfalls rufen sie die Equals(Object) -Methode auf, die immer zurückgibt, false wenn das Argument kein Wert obj UInt16 ist. Im folgenden Beispiel wird der Unterschied im Verhalten zwischen den beiden Methodenüberladungen veranschaulicht. Im Fall eines -Werts gibt der erste Vergleich zurück, da der Compiler automatisch eine sich ausweitende Konvertierung ausführt und die -Methode aufruft, während der zweite Vergleich zurückgibt, da der Compiler die -Methode Byte true Equals(UInt16) false Equals(Object) aufruft.

using System;

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

      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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False

Gilt für

Equals(UInt16)

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

public:
 virtual bool Equals(System::UInt16 obj);
public bool Equals (ushort obj);
override this.Equals : uint16 -> bool
Public Function Equals (obj As UShort) As Boolean

Parameter

obj
UInt16

Eine 16-Bit-Ganzzahl ohne Vorzeichen, die mit dieser Instanz verglichen werden soll.

Gibt zurück

Boolean

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

Implementiert

Hinweise

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

Hinweise für Aufrufer

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

using System;

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

      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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False

Gilt für