Leer en inglés

Compartir a través de


Int16.Equals Método

Definición

Devuelve un valor que indica si esta instancia equivale a un objeto especificado o a un valor Int16.

Sobrecargas

Equals(Int16)

Devuelve un valor que indica si esta instancia equivale a un valor de Int16 especificado.

Equals(Object)

Devuelve un valor que indica si esta instancia equivale a un objeto especificado.

Equals(Int16)

Devuelve un valor que indica si esta instancia equivale a un valor de Int16 especificado.

C#
public bool Equals (short obj);

Parámetros

obj
Int16

Valor Int16 que se comparará con esta instancia.

Devoluciones

Boolean

true si el valor de obj tiene el mismo valor que esta instancia; en caso contrario, false.

Implementaciones

Comentarios

Este método implementa la interfaz y funciona ligeramente mejor que porque no tiene que convertir el System.IEquatable<T> parámetro en un objeto Equals obj .

Notas a los autores de las llamadas

La resolución de sobrecargas del compilador puede tener en cuenta una diferencia aparente en el comportamiento de las dos Equals(Int16) sobrecargas de método. Si se define una conversión implícita entre el argumento y y el argumento no se escribe como , los compiladores realizan una conversión implícita y obj Int16 llaman al método Object Equals(Int16) . De lo contrario, llaman Equals(Object) al método , que siempre devuelve si su argumento no es un false obj Int16 valor. En el ejemplo siguiente se muestra la diferencia de comportamiento entre las dos sobrecargas de método. En el caso de los valores y , la primera comparación devuelve porque el compilador realiza automáticamente una conversión de ampliación y llama al método , mientras que la segunda comparación devuelve porque el compilador llama al Byte SByte método true Equals(Int16) false Equals(Object) .

C#
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

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Equals(Object)

Devuelve un valor que indica si esta instancia equivale a un objeto especificado.

C#
public override bool Equals (object obj);
C#
public override bool Equals (object? obj);

Parámetros

obj
Object

Un objeto que se va a comparar con esta instancia.

Devoluciones

Boolean

true si obj es una instancia de Int16 y es igual al valor de esta instancia; en caso contrario, false.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de en el contexto de , comparando dos valores cortos y devolviendo si representan el mismo número o si Equals Int16 no lo true false hacen.

C#
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");

Notas a los autores de las llamadas

La resolución de sobrecargas del compilador puede tener en cuenta una diferencia aparente en el comportamiento de las dos Equals(Int16) sobrecargas de método. Si se define una conversión implícita entre el argumento y y el argumento no se escribe como , los compiladores realizan una conversión implícita y obj Int16 llaman al método Object Equals(Int16) . De lo contrario, llaman Equals(Object) al método , que siempre devuelve si su argumento no es un false obj Int16 valor. En el ejemplo siguiente se muestra la diferencia de comportamiento entre las dos sobrecargas de método. En el caso de los valores y , la primera comparación devuelve porque el compilador realiza automáticamente una conversión de ampliación y llama al método , mientras que la segunda comparación devuelve porque el compilador llama al Byte SByte método true Equals(Int16) false Equals(Object) .

C#
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

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0