Int64.Equals Método

Definición

Devuelve un valor que indica si esta instancia es igual a un objeto especificado o Int64.

Sobrecargas

Nombre Description
Equals(Int64)

Devuelve un valor que indica si esta instancia es igual a un valor especificado Int64 .

Equals(Object)

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

Equals(Int64)

Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs

Devuelve un valor que indica si esta instancia es igual a un valor especificado Int64 .

public:
 virtual bool Equals(long obj);
public bool Equals(long obj);
override this.Equals : int64 -> bool
Public Function Equals (obj As Long) As Boolean

Parámetros

obj
Int64

Valor Int64 que se va a comparar con esta instancia.

Devoluciones

true es si obj tiene el mismo valor que esta instancia; de lo contrario, falsees .

Implementaciones

Comentarios

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

Notas a los autores de las llamadas

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

using System;

public class Example
{
   static long value = 112;

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

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

      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);

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

      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 (Int64) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int64) = 112 (Int16): False
//
//       value = int1:              True
//       112 (Int64) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int64) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int64) = 112 (UInt16): False
//
//       value = uint1:              True
//       112 (Int64) = 112 (UInt32): False
//
//       value = dec1:                False
//       112 (Int64) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int64) = 112 (Double): False
let value = 112

let testObjectForEquality (obj: obj) =
    printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"

let byte1 = 112uy
printfn $"value = byte1: {value.Equals(int byte1),15}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals(int short1),15}"
testObjectForEquality short1

let int1 = 112
printfn $"value = int1: {value.Equals(int int1),17}"
testObjectForEquality int1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals(int sbyte1),15}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int ushort1),15}"
testObjectForEquality ushort1

let uint1 = 112u
printfn $"value = uint1: {value.Equals(int uint1),17}"
testObjectForEquality uint1

let dec1 = 112M
printfn $"value = dec1: {value.Equals(int dec1),20}"
testObjectForEquality dec1

let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals(int dbl1),19}"
testObjectForEquality dbl1


// The example displays the following output:
//       value = byte1:            True
//       112 (Int64) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int64) = 112 (Int16): False
//
//       value = int1:              True
//       112 (Int64) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int64) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int64) = 112 (UInt16): False
//
//       value = uint1:              True
//       112 (Int64) = 112 (UInt32): False
//
//       value = dec1:                False
//       112 (Int64) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int64) = 112 (Double): False
Module Example
   Dim value As Int64 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,15}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim int1 As Integer = 112
      Console.WriteLine("value = int1: {0,17}", value.Equals(int1))
      TestObjectForEquality(int1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim uint1 As UInteger = 112
      Console.WriteLine("value = uint1: {0,17}", value.Equals(uint1))
      TestObjectForEquality(uint1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1))
      TestObjectForEquality(dbl1)
   End Sub
   
   Private Sub TestObjectForEquality(obj As Object)
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj))
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       value = byte1:            True
'       112 (Int64) = 112 (Byte): False
'
'       value = short1:            True
'       112 (Int64) = 112 (Int16): False
'
'       value = int1:              True
'       112 (Int64) = 112 (Int32): False
'
'       value = sbyte1:            True
'       112 (Int64) = 112 (SByte): False
'
'       value = ushort1:            True
'       112 (Int64) = 112 (UInt16): False
'
'       value = uint1:              True
'       112 (Int64) = 112 (UInt32): False
'
'       value = dec1:                False
'       112 (Int64) = 112 (Decimal): False
'
'       value = dbl1:               False
'       112 (Int64) = 112 (Double): False

Se aplica a

Equals(Object)

Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs
Source:
Int64.cs

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

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

Parámetros

obj
Object

Objeto que se va a comparar con esta instancia.

Devoluciones

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

Ejemplos

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

Int64 myVariable1 = 80;
Int64 myVariable2 = 80;

// 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 = 80L
let myVariable2 = 80L

// Get and display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is: {myVariable1}"
printfn $"\nType 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 Int64 = 80
Dim myVariable2 As Int64 = 80

' 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

Notas a los autores de las llamadas

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

using System;

public class Example
{
   static long value = 112;

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

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

      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);

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

      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 (Int64) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int64) = 112 (Int16): False
//
//       value = int1:              True
//       112 (Int64) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int64) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int64) = 112 (UInt16): False
//
//       value = uint1:              True
//       112 (Int64) = 112 (UInt32): False
//
//       value = dec1:                False
//       112 (Int64) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int64) = 112 (Double): False
let value = 112

let testObjectForEquality (obj: obj) =
    printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"

let byte1 = 112uy
printfn $"value = byte1: {value.Equals(int byte1),15}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals(int short1),15}"
testObjectForEquality short1

let int1 = 112
printfn $"value = int1: {value.Equals(int int1),17}"
testObjectForEquality int1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals(int sbyte1),15}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int ushort1),15}"
testObjectForEquality ushort1

let uint1 = 112u
printfn $"value = uint1: {value.Equals(int uint1),17}"
testObjectForEquality uint1

let dec1 = 112M
printfn $"value = dec1: {value.Equals(int dec1),20}"
testObjectForEquality dec1

let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals(int dbl1),19}"
testObjectForEquality dbl1


// The example displays the following output:
//       value = byte1:            True
//       112 (Int64) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int64) = 112 (Int16): False
//
//       value = int1:              True
//       112 (Int64) = 112 (Int32): False
//
//       value = sbyte1:            True
//       112 (Int64) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int64) = 112 (UInt16): False
//
//       value = uint1:              True
//       112 (Int64) = 112 (UInt32): False
//
//       value = dec1:                False
//       112 (Int64) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int64) = 112 (Double): False
Module Example
   Dim value As Int64 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,15}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim int1 As Integer = 112
      Console.WriteLine("value = int1: {0,17}", value.Equals(int1))
      TestObjectForEquality(int1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim uint1 As UInteger = 112
      Console.WriteLine("value = uint1: {0,17}", value.Equals(uint1))
      TestObjectForEquality(uint1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1))
      TestObjectForEquality(dbl1)
   End Sub
   
   Private Sub TestObjectForEquality(obj As Object)
      Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
                        value, value.GetType().Name,
                        obj, obj.GetType().Name,
                        value.Equals(obj))
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       value = byte1:            True
'       112 (Int64) = 112 (Byte): False
'
'       value = short1:            True
'       112 (Int64) = 112 (Int16): False
'
'       value = int1:              True
'       112 (Int64) = 112 (Int32): False
'
'       value = sbyte1:            True
'       112 (Int64) = 112 (SByte): False
'
'       value = ushort1:            True
'       112 (Int64) = 112 (UInt16): False
'
'       value = uint1:              True
'       112 (Int64) = 112 (UInt32): False
'
'       value = dec1:                False
'       112 (Int64) = 112 (Decimal): False
'
'       value = dbl1:               False
'       112 (Int64) = 112 (Double): False

Consulte también

Se aplica a