Sdílet prostřednictvím


UInt16.Equals Metoda

Definice

Vrátí hodnotu určující, zda je tato instance rovna zadanému objektu nebo UInt16 .

Přetížení

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

Equals(UInt16)

Vrátí hodnotu určující, zda je tato instance rovna zadané UInt16 hodnotě.

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

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

Objekt k porovnání s touto instancí.

Návraty

Boolean

true pokud obj je instance a rovná se hodnotě této UInt16 instance; jinak hodnota false .

Příklady

Následující příklad ukazuje Equals metodu .

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

Poznámky pro volající

Rozlišení přetížení kompilátoru může zohlednit zjevný rozdíl v chování dvou Equals(UInt16) přetížení metody. Pokud je definován implicitní převod mezi argumentem a argumentem a argument není typován jako , kompilátory provádějí implicitní převod obj UInt16 a Object volají Equals(UInt16) metodu . V opačném případě volají Equals(Object) metodu , která vždy vrátí hodnotu, pokud false její argument není obj UInt16 hodnota. Následující příklad ukazuje rozdíl v chování mezi těmito dvěma přetíženími metody. V případě hodnoty vrátí první porovnání, protože kompilátor automaticky provádí rozšiřující převod a volá metodu , zatímco druhé porovnání vrátí , protože kompilátor volá Byte true Equals(UInt16) false Equals(Object) metodu .

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

Platí pro

Equals(UInt16)

Vrátí hodnotu určující, zda je tato instance rovna zadané UInt16 hodnotě.

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

16bitový soubor unsigned integer porovnání s touto instancí.

Návraty

Boolean

true pokud obj má stejnou hodnotu jako tato instance, jinak hodnota false .

Implementuje

Poznámky

Tato metoda implementuje rozhraní a má trochu lepší výkon než , protože nemusí převést System.IEquatable<T> Equals parametr na obj objekt.

Poznámky pro volající

Rozlišení přetížení kompilátoru může zohlednit zjevný rozdíl v chování dvou Equals(UInt16) přetížení metody. Pokud je definován implicitní převod mezi argumentem a argumentem a argument není typován jako , kompilátory provádějí implicitní převod obj UInt16 a Object volají Equals(UInt16) metodu . V opačném případě volají Equals(Object) metodu , která vždy vrátí hodnotu, pokud false její argument není obj UInt16 hodnota. Následující příklad ukazuje rozdíl v chování mezi těmito dvěma přetíženími metody. V případě hodnoty vrátí první porovnání, protože kompilátor automaticky provádí rozšiřující převod a volá metodu , zatímco druhé porovnání vrátí , protože kompilátor volá Byte true Equals(UInt16) false Equals(Object) metodu .

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

Platí pro