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 -> boolPublic Overrides Function Equals (obj As Object) As Boolean参数
- obj
- Object
要与此实例进行比较的对象。
返回
如果 true 是 obj 的实例并且等于此实例的值,则为 UInt64;否则为 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 -> boolPublic 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":::