UInt64.Equals Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un valor que indica si esta instancia es igual a un objeto especificado o UInt64.
Sobrecargas
| Nombre | Description |
|---|---|
| Equals(Object) |
Devuelve un valor que indica si esta instancia es igual a un objeto especificado. |
| Equals(UInt64) |
Devuelve un valor que indica si esta instancia es igual a un valor especificado UInt64 . |
Equals(Object)
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.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 UInt64 y es igual al valor de esta instancia; de lo contrario, falsees .
Ejemplos
En el ejemplo siguiente se muestra el Equals método .
using System;
public class Example
{
public static void Main()
{
object[] values = { (short) 10, (short) 20, 10, 20,
10L, 20L, 10D, 20D, (ushort) 10,
(ushort) 20, 10U, 20U,
10ul, 20ul };
UInt64 baseValue = 20;
String baseType = baseValue.GetType().Name;
foreach (var value in values)
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
baseValue, baseType,
value, value.GetType().Name,
baseValue.Equals(value));
}
}
// The example displays the following output:
// 20 (UInt64) = 10 (Int16): False
// 20 (UInt64) = 20 (Int16): False
// 20 (UInt64) = 10 (Int32): False
// 20 (UInt64) = 20 (Int32): False
// 20 (UInt64) = 10 (Int64): False
// 20 (UInt64) = 20 (Int64): False
// 20 (UInt64) = 10 (Double): False
// 20 (UInt64) = 20 (Double): False
// 20 (UInt64) = 10 (UInt16): False
// 20 (UInt64) = 20 (UInt16): False
// 20 (UInt64) = 10 (UInt32): False
// 20 (UInt64) = 20 (UInt32): False
// 20 (UInt64) = 10 (UInt64): False
// 20 (UInt64) = 20 (UInt64): True
let values: obj[] =
[| 10s; 20s; 10; 20
10L; 20L; 10.; 20.; 10us
20us; 10u; 20u
10uL; 20uL |]
let baseValue = 20uL
let baseType = baseValue.GetType().Name
for value in values do
printfn $"{baseValue} ({baseType}) = {value} ({value.GetType().Name}): {value.GetType().Name}"
// The example displays the following output:
// 20 (UInt64) = 10 (Int16): False
// 20 (UInt64) = 20 (Int16): False
// 20 (UInt64) = 10 (Int32): False
// 20 (UInt64) = 20 (Int32): False
// 20 (UInt64) = 10 (Int64): False
// 20 (UInt64) = 20 (Int64): False
// 20 (UInt64) = 10 (Double): False
// 20 (UInt64) = 20 (Double): False
// 20 (UInt64) = 10 (UInt16): False
// 20 (UInt64) = 20 (UInt16): False
// 20 (UInt64) = 10 (UInt32): False
// 20 (UInt64) = 20 (UInt32): False
// 20 (UInt64) = 10 (UInt64): False
// 20 (UInt64) = 20 (UInt64): True
Module Example
Public Sub Main()
Dim values() As Object = { 10S, 20S, 10I, 20I, 10L, 20L,
10R, 20R, 10US, 20US, 10UI, 20UI,
10UL, 20UL }
Dim baseValue As UInt64 = 20
Dim baseType As String = baseValue.GetType().Name
For Each value In values
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
baseValue, baseType,
value, value.GetType().Name,
baseValue.Equals(value))
Next
End Sub
End Module
' The example displays the following output:
' 20 (UInt64) = 10 (Int16): False
' 20 (UInt64) = 20 (Int16): False
' 20 (UInt64) = 10 (Int32): False
' 20 (UInt64) = 20 (Int32): False
' 20 (UInt64) = 10 (Int64): False
' 20 (UInt64) = 20 (Int64): False
' 20 (UInt64) = 10 (Double): False
' 20 (UInt64) = 20 (Double): False
' 20 (UInt64) = 10 (UInt16): False
' 20 (UInt64) = 20 (UInt16): False
' 20 (UInt64) = 10 (UInt32): False
' 20 (UInt64) = 20 (UInt32): False
' 20 (UInt64) = 10 (UInt64): False
' 20 (UInt64) = 20 (UInt64): True
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(UInt64) sobrecargas del método. Si se define una conversión implícita entre el obj argumento y y UInt64 el argumento no se escribe como , Objectlos compiladores realizan una conversión implícita y llaman al Equals(UInt64) método . De lo contrario, llaman al Equals(Object) método , que siempre devuelve false si su obj argumento no es un UInt64 valor. En el ejemplo siguiente se muestra la diferencia de comportamiento entre las dos sobrecargas del método. En el caso de los Bytevalores , UInt16y UInt32 , la primera comparación devuelve true porque el compilador realiza automáticamente una conversión de ampliación y llama al Equals(UInt64) 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 ulong 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);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1));
TestObjectForEquality(uint1);
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 (UInt64) = 112 (Byte): False
//
// value = short1: False
// 112 (UInt64) = 112 (Int16): False
//
// value = int1: False
// 112 (UInt64) = 112 (Int32): False
//
// value = sbyte1: False
// 112 (UInt64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (UInt64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (UInt64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (UInt64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (UInt64) = 112 (Double): False
let value = 112uL
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 byte1,16}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1
let int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1
let uint1 = 112u
printfn $"value = uint1: {value.Equals uint1,18}"
testObjectForEquality uint1
let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1
let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (UInt64) = 112 (Byte): False
//
// value = short1: False
// 112 (UInt64) = 112 (Int16): False
//
// value = int1: False
// 112 (UInt64) = 112 (Int32): False
//
// value = sbyte1: False
// 112 (UInt64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (UInt64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (UInt64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (UInt64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (UInt64) = 112 (Double): False
Module Example
Dim value As UInt64 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
TestObjectForEquality(short1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
TestObjectForEquality(int1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim uint1 As UInteger = 112
Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1))
TestObjectForEquality(uint1)
Dim dec1 As Decimal = 112d
Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
TestObjectForEquality(dec1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,20}", 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 (UInt64) = 112 (Byte): False
'
' value = short1: False
' 112 (UInt64) = 112 (Int16): False
'
' value = int1: False
' 112 (UInt64) = 112 (Int32): False
'
' value = sbyte1: False
' 112 (UInt64) = 112 (SByte): False
'
' value = ushort1: True
' 112 (UInt64) = 112 (UInt16): False
'
' value = uint1: True
' 112 (UInt64) = 112 (UInt32): False
'
' value = dec1: False
' 112 (UInt64) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (UInt64) = 112 (Double): False
Consulte también
Se aplica a
Equals(UInt64)
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.cs
- Source:
- UInt64.cs
Devuelve un valor que indica si esta instancia es igual a un valor especificado UInt64 .
public:
virtual bool Equals(System::UInt64 obj);
public bool Equals(ulong obj);
override this.Equals : uint64 -> bool
Public Function Equals (obj As ULong) As Boolean
Parámetros
Devoluciones
true es si obj tiene el mismo valor que esta instancia; de lo contrario, falsees .
Implementaciones
Ejemplos
En el ejemplo siguiente se muestra el Equals método .
using System;
class Example
{
public static void Main()
{
UInt64 value1 = 50;
UInt64 value2 = 50;
// Display the values.
Console.WriteLine("value1: Type: {0} Value: {1}",
value1.GetType().Name, value1);
Console.WriteLine("value2: Type: {0} Value: {1}",
value2.GetType().Name, value2);
// Compare the two values.
Console.WriteLine("value1 and value2 are equal: {0}",
value1.Equals(value2));
}
}
// The example displays the following output:
// value1: Type: UInt64 Value: 50
// value2: Type: UInt64 Value: 50
// value1 and value2 are equal: True
let value1 = 50uL
let value2 = 50uL
// Display the values.
printfn $"value1: Type: {value1.GetType().Name} Value: {value1}"
printfn $"value2: Type: {value2.GetType().Name} Value: {value2}"
// Compare the two values.
printfn $"value1 and value2 are equal: {value1.Equals value2}"
// The example displays the following output:
// value1: Type: UInt64 Value: 50
// value2: Type: UInt64 Value: 50
// value1 and value2 are equal: True
Class Example
Public Shared Sub Main()
Dim value1 As UInt64 = 50
Dim value2 As UInt64 = 50
'Display the values.
Console.WriteLine("value1: Type: {0} Value: {1}",
value1.GetType().Name, value1)
Console.WriteLine("value2: Type: {0} Value: {1}",
value2.GetType().Name, value2)
' Compare the two values.
Console.WriteLine("value1 and value2 are equal: {0}",
value1.Equals(value2))
End Sub
End Class
' The example displays the following output:
' value1: Type: UInt64 Value: 50
' value2: Type: UInt64 Value: 50
' value1 and value2 are equal: True
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(UInt64) sobrecargas del método. Si se define una conversión implícita entre el obj argumento y y UInt64 el argumento no se escribe como , Objectlos compiladores realizan una conversión implícita y llaman al Equals(UInt64) método . De lo contrario, llaman al Equals(Object) método , que siempre devuelve false si su obj argumento no es un UInt64 valor. En el ejemplo siguiente se muestra la diferencia de comportamiento entre las dos sobrecargas del método. En el caso de los Bytevalores , UInt16y UInt32 , la primera comparación devuelve true porque el compilador realiza automáticamente una conversión de ampliación y llama al Equals(UInt64) 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 ulong 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);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1));
TestObjectForEquality(uint1);
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 (UInt64) = 112 (Byte): False
//
// value = short1: False
// 112 (UInt64) = 112 (Int16): False
//
// value = int1: False
// 112 (UInt64) = 112 (Int32): False
//
// value = sbyte1: False
// 112 (UInt64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (UInt64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (UInt64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (UInt64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (UInt64) = 112 (Double): False
let value = 112uL
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 byte1,16}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1
let int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1
let uint1 = 112u
printfn $"value = uint1: {value.Equals uint1,18}"
testObjectForEquality uint1
let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1
let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (UInt64) = 112 (Byte): False
//
// value = short1: False
// 112 (UInt64) = 112 (Int16): False
//
// value = int1: False
// 112 (UInt64) = 112 (Int32): False
//
// value = sbyte1: False
// 112 (UInt64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (UInt64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (UInt64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (UInt64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (UInt64) = 112 (Double): False
Module Example
Dim value As UInt64 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
TestObjectForEquality(short1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
TestObjectForEquality(int1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim uint1 As UInteger = 112
Console.WriteLine("value = uint1: {0,18}", value.Equals(uint1))
TestObjectForEquality(uint1)
Dim dec1 As Decimal = 112d
Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
TestObjectForEquality(dec1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,20}", 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 (UInt64) = 112 (Byte): False
'
' value = short1: False
' 112 (UInt64) = 112 (Int16): False
'
' value = int1: False
' 112 (UInt64) = 112 (Int32): False
'
' value = sbyte1: False
' 112 (UInt64) = 112 (SByte): False
'
' value = ushort1: True
' 112 (UInt64) = 112 (UInt16): False
'
' value = uint1: True
' 112 (UInt64) = 112 (UInt32): False
'
' value = dec1: False
' 112 (UInt64) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (UInt64) = 112 (Double): False