UInt64.Equals Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object of UInt64.
Overloads
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. |
| Equals(UInt64) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven UInt64 waarde. |
Equals(Object)
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.
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
Parameters
- obj
- Object
Een object dat moet worden vergeleken met dit exemplaar.
Retouren
trueals obj dit een instantie is van UInt64 en gelijk is aan de waarde van dit exemplaar; anders. false
Voorbeelden
In het volgende voorbeeld ziet u de Equals methode.
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
Notities voor bellers
De oplossing voor overbelasting van compilers kan een duidelijk verschil in het gedrag van de twee Equals(UInt64) methodeoverbelastingen zijn. Als een impliciete conversie tussen het obj argument en een UInt64 is gedefinieerd en het argument niet als een Objectis getypt, voeren compilers een impliciete conversie uit en roepen ze de methode aan Equals(UInt64) . Anders wordt de Equals(Object) methode aangeroepen, die altijd retourneert false als het obj argument geen UInt64 waarde is. In het volgende voorbeeld ziet u het verschil in gedrag tussen de twee overbelastingen van de methode. In het geval van de , en waarden retourneert Byte de eerste vergelijking omdat de compiler automatisch een widening-conversie uitvoert en de UInt16 methode aanroept, terwijl de tweede vergelijking retourneert omdat de compiler de UInt32 methode aanroepttrue.Equals(UInt64)falseEquals(Object)
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
Zie ook
Van toepassing op
Equals(UInt64)
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
- Bron:
- UInt64.cs
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven UInt64 waarde.
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
Parameters
Retouren
trueals obj deze instantie dezelfde waarde heeft; anders. false
Implementeringen
Voorbeelden
In het volgende voorbeeld ziet u de Equals methode.
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
Opmerkingen
Deze methode implementeert de System.IEquatable<T> interface en presteert iets beter dan Equals omdat deze de obj parameter niet hoeft te converteren naar een object.
Notities voor bellers
De oplossing voor overbelasting van compilers kan een duidelijk verschil in het gedrag van de twee Equals(UInt64) methodeoverbelastingen zijn. Als een impliciete conversie tussen het obj argument en een UInt64 is gedefinieerd en het argument niet als een Objectis getypt, voeren compilers een impliciete conversie uit en roepen ze de methode aan Equals(UInt64) . Anders wordt de Equals(Object) methode aangeroepen, die altijd retourneert false als het obj argument geen UInt64 waarde is. In het volgende voorbeeld ziet u het verschil in gedrag tussen de twee overbelastingen van de methode. In het geval van de , en waarden retourneert Byte de eerste vergelijking omdat de compiler automatisch een widening-conversie uitvoert en de UInt16 methode aanroept, terwijl de tweede vergelijking retourneert omdat de compiler de UInt32 methode aanroepttrue.Equals(UInt64)falseEquals(Object)
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