Udostępnij za pośrednictwem


UInt16.Equals Metoda

Definicja

Zwraca wartość wskazującą, czy to wystąpienie jest równe określoneowi 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

true jeśli obj element jest wystąpieniem klasy i jest równa wartości tego wystąpienia; w przeciwnym UInt16 razie wartość false .

Przykłady

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

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

Uwagi dotyczące wywoływania

Rozpoznanie przeciążenia kompilatora może uwzględniać widoczną różnicę w zachowaniu dwóch Equals(UInt16) przeciążeń metody. Jeśli zdefiniowano niejawną konwersję między argumentem a argumentem , a argument nie został wpisany jako obj , kompilatory wykonują niejawną konwersję i UInt16 wywołują metodę Object Equals(UInt16) . W przeciwnym razie wywołują metodę , która zawsze zwraca wartość , Equals(Object) jeśli jej argument nie jest false obj UInt16 wartością. Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku wartości pierwsze porównanie zwraca wartość , ponieważ kompilator automatycznie wykonuje konwersję poszerzania i wywołuje metodę , natomiast drugie porównanie zwraca wartość, ponieważ kompilator wywołuje Byte true metodę Equals(UInt16) false 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 wartość obj , jeśli ma taką samą wartość jak to wystąpienie; w przeciwnym razie wartość false .

Implementuje

Uwagi

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

Uwagi dotyczące wywoływania

Rozpoznanie przeciążenia kompilatora może uwzględniać widoczną różnicę w zachowaniu dwóch Equals(UInt16) przeciążeń metody. Jeśli zdefiniowano niejawną konwersję między argumentem a argumentem , a argument nie został wpisany jako obj , kompilatory wykonują niejawną konwersję i UInt16 wywołują metodę Object Equals(UInt16) . W przeciwnym razie wywołują metodę , która zawsze zwraca wartość , Equals(Object) jeśli jej argument nie jest false obj UInt16 wartością. Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku wartości pierwsze porównanie zwraca wartość , ponieważ kompilator automatycznie wykonuje konwersję poszerzania i wywołuje metodę , natomiast drugie porównanie zwraca wartość, ponieważ kompilator wywołuje Byte true metodę Equals(UInt16) false 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