UInt16.Equals Metoda

Definicja

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi, czy UInt16.

Przeciążenia

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

Equals(UInt16)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonej UInt16 wartości.

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

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

Parametry

obj
Object

Obiekt, który ma zostać porównany z tym wystąpieniem.

Zwraca

Boolean

truejeśli obj jest wystąpieniem UInt16 i równa wartości tego wystąpienia; w przeciwnym razie . false

Przykłady

W poniższym przykładzie pokazano metodę Equals .

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");
let myVariable1 = 10us
let myVariable2 = 10us

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

Uwagi dotyczące wywoływania

Rozpoznawanie przeciążeń kompilatora może uwzględniać widoczną różnicę w zachowaniu dwóch Equals(UInt16) przeciążeń metody. Jeśli niejawna konwersja między obj argumentem a argumentem UInt16 jest zdefiniowana, a argument nie jest wpisywany jako , kompilatory wykonują niejawną Objectkonwersję i wywołają metodę Equals(UInt16) . W przeciwnym razie wywołają metodę Equals(Object) , która zawsze zwraca wartość false , jeśli jej obj argument nie jest wartością UInt16 . Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku Byte wartości pierwsze porównanie zwraca true , ponieważ kompilator automatycznie wykonuje konwersję rozszerzającą i wywołuje Equals(UInt16) metodę, natomiast drugie porównanie zwraca false , ponieważ kompilator wywołuje metodę Equals(Object) .

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

Dotyczy

Equals(UInt16)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonej UInt16 wartości.

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

Parametry

obj
UInt16

16-bitowa liczba całkowita bez znaku do porównania z tym wystąpieniem.

Zwraca

Boolean

true jeśli obj ma taką samą wartość jak to wystąpienie; w przeciwnym razie false.

Implementuje

Uwagi

Ta metoda implementuje System.IEquatable<T> interfejs i działa nieco lepiej niż Equals dlatego, że nie musi konwertować parametru obj na obiekt.

Uwagi dotyczące wywoływania

Rozpoznawanie przeciążeń kompilatora może uwzględniać widoczną różnicę w zachowaniu dwóch Equals(UInt16) przeciążeń metody. Jeśli niejawna konwersja między obj argumentem a argumentem UInt16 jest zdefiniowana, a argument nie jest wpisywany jako , kompilatory wykonują niejawną Objectkonwersję i wywołają metodę Equals(UInt16) . W przeciwnym razie wywołają metodę Equals(Object) , która zawsze zwraca wartość false , jeśli jej obj argument nie jest wartością UInt16 . Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku Byte wartości pierwsze porównanie zwraca true , ponieważ kompilator automatycznie wykonuje konwersję rozszerzającą i wywołuje Equals(UInt16) metodę, natomiast drugie porównanie zwraca false , ponieważ kompilator wywołuje metodę Equals(Object) .

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

Dotyczy