Int16.Equals Metoda

Definicja

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

Przeciążenia

Equals(Int16)

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

Equals(Object)

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

Equals(Int16)

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

public:
 virtual bool Equals(short obj);
public bool Equals (short obj);
override this.Equals : int16 -> bool
Public Function Equals (obj As Short) As Boolean

Parametry

obj
Int16

Wartość Int16 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ż dlatego, że 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(Int16) przeciążeń metody. Jeśli zdefiniowano niejawną konwersję między argumentem a argumentem , a argument nie został wpisany jako , kompilatory wykonują niejawną konwersję i obj Int16 wywołują metodę Object Equals(Int16) . W przeciwnym razie wywołują metodę , która zawsze zwraca wartość , jeśli Equals(Object) jej argument nie jest false obj Int16 wartością. Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku wartości i 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 SByte metodę true Equals(Int16) false Equals(Object) .

using System;

public class Example
{
   static short value = 112;

   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,17}", value.Equals(int1));
      TestObjectForEquality(int1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,19}", 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 (Int16) = 112 (Byte): False
//
//       value = int1:             False
//       112 (Int16) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int16) = 112 (SByte): False
//
//       value = ushort1:            False
//       112 (Int16) = 112 (UInt16): False
//
//       value = dec1:                False
//       112 (Int16) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int16) = 112 (Double): False

Zobacz też

Dotyczy

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 jest wystąpieniem klasy i jest równe wartości tego wystąpienia; w przeciwnym razie Int16 wartość false .

Przykłady

Poniższy przykład kodu ilustruje użycie funkcji w kontekście funkcji , porównując dwie krótkie wartości i zwracając wartość , jeśli reprezentują tę samą liczbę, a jeśli tak nie Equals Int16 true false jest.

Int16 myVariable1 = 20;
Int16 myVariable2 = 20;

// Get and 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" );
Int16 myVariable1 = 20;
Int16 myVariable2 = 20;

// Get and 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 = 20s
let myVariable2 = 20s

// Get and display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is: {myVariable1}"
printfn $"\nType of 'myVariable1' 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 Int16 = 20
  Dim myVariable2 As Int16 = 20
  
' Get and 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(Int16) przeciążeń metody. Jeśli zdefiniowano niejawną konwersję między argumentem a argumentem , a argument nie został wpisany jako , kompilatory wykonują niejawną konwersję i obj Int16 wywołują metodę Object Equals(Int16) . W przeciwnym razie wywołują metodę , która zawsze zwraca wartość , jeśli Equals(Object) jej argument nie jest false obj Int16 wartością. Poniższy przykład ilustruje różnicę w zachowaniu między dwoma przeciążeniami metody. W przypadku wartości i 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 SByte metodę true Equals(Int16) false Equals(Object) .

using System;

public class Example
{
   static short value = 112;

   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,17}", value.Equals(int1));
      TestObjectForEquality(int1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,19}", 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 (Int16) = 112 (Byte): False
//
//       value = int1:             False
//       112 (Int16) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int16) = 112 (SByte): False
//
//       value = ushort1:            False
//       112 (Int16) = 112 (UInt16): False
//
//       value = dec1:                False
//       112 (Int16) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int16) = 112 (Double): False

Dotyczy