共用方式為


UInt64.Equals 方法

定義

傳回表示這個執行個體是否等於指定物件或 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

與這個執行個體相比較的物件。

傳回

Boolean

如果 objUInt64 的執行個體,並且等於這個執行個體的值,則為 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

參數

obj
UInt64

要與此執行個體相比較的 UInt64 值。

傳回

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":::

適用於