UInt64.Equals 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回表示這個執行個體是否等於指定物件或 UInt64 的值。
多載
Equals(Object) |
傳回值,該值表示這個執行個體是否和指定的物件相等。 |
Equals(UInt64) |
傳回值,表示這個執行個體是否等於指定的 UInt64 值。 |
Equals(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
參數
- obj
- Object
與這個執行個體相比較的物件。
傳回
如果 obj
是 UInt64 的執行個體,並且等於這個執行個體的值,則為 true
,否則為 false
。
範例
下列範例會示範 Equals 方法。
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
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
給呼叫者的注意事項
編譯器多載解析可能會考慮兩種方法多載行為中的明顯差異 Equals(UInt64) 。 如果引數與定義之間的隱含轉換, obj
UInt64 而且引數的類型不是,則 Object 編譯器會執行隱含轉換,並呼叫 Equals(UInt64) 方法。 否則,它們會呼叫 Equals(Object) 方法, false
如果其 obj
引數不是值,它一律會傳回 UInt64 。 下列範例說明兩個方法多載之間的行為差異。 在 Byte 、和值的情況下 UInt16 UInt32 ,第一次的比較會傳回, true
因為編譯器會自動執行擴輾轉換並呼叫 Equals(UInt64) 方法,而第二個比較會傳回, false
因為編譯器會呼叫 Equals(Object) 方法。
::: code language = "csharp" source = "~/samples/snippets/csharp/VS_Snippets_CLR_System/system.uint64.equals/cs/equalsoverl.cs" id = "Snippet2":::::: code language = "vb" source = "~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.uint64.equals/vb/equalsoverl.vb" id = "Snippet2":::
另請參閱
適用於
Equals(UInt64)
傳回值,表示這個執行個體是否等於指定的 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
參數
傳回
如果 true
與這個執行個體具有相同的值,則為 obj
,否則為 false
。
實作
範例
下列範例會示範 Equals 方法。
using namespace System;
int 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
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
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
備註
這個方法會實作為 System.IEquatable<T> 介面,而且執行方式稍微優於, Equals 因為它不需要將 obj
參數轉換成物件。
給呼叫者的注意事項
編譯器多載解析可能會考慮兩種方法多載行為中的明顯差異 Equals(UInt64) 。 如果引數與定義之間的隱含轉換, obj
UInt64 而且引數的類型不是,則 Object 編譯器會執行隱含轉換,並呼叫 Equals(UInt64) 方法。 否則,它們會呼叫 Equals(Object) 方法, false
如果其 obj
引數不是值,它一律會傳回 UInt64 。 下列範例說明兩個方法多載之間的行為差異。 在 Byte 、和值的情況下 UInt16 UInt32 ,第一次的比較會傳回, true
因為編譯器會自動執行擴輾轉換並呼叫 Equals(UInt64) 方法,而第二個比較會傳回, false
因為編譯器會呼叫 Equals(Object) 方法。
::: code language = "csharp" source = "~/samples/snippets/csharp/VS_Snippets_CLR_System/system.uint64.equals/cs/equalsoverl.cs" id = "Snippet2":::::: code language = "vb" source = "~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.uint64.equals/vb/equalsoverl.vb" id = "Snippet2":::