閱讀英文

共用方式為


Int32.Equals 方法

定義

傳回值,表示這個執行個體是否等於指定的 Int32 值。

多載

Equals(Int32)

傳回值,表示這個執行個體是否等於指定的 Int32 值。

Equals(Object)

傳回值,該值表示這個執行個體是否和指定的物件相等。

Equals(Int32)

來源:
Int32.cs
來源:
Int32.cs
來源:
Int32.cs

傳回值,表示這個執行個體是否等於指定的 Int32 值。

C#
public bool Equals (int obj);

參數

obj
Int32

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

傳回

如果 true 與這個執行個體具有相同的值,則為 obj,否則為 false

實作

備註

這個方法會實作 System.IEquatable<T> 介面,而且執行效能會比 Int32.Equals(Object) 起稍好,因為它不需要將 obj 參數轉換成 物件。

給呼叫者的注意事項

編譯器多載解析可能會考慮兩 Equals(Int32) 個方法多載的行為明顯差異。 如果引數與 之間的 Int32 隱含轉換 obj 已定義,且引數未輸入為 Object ,編譯器會執行隱含轉換並呼叫 Equals(Int32) 方法。 否則,他們會呼叫 Equals(Object) 方法,如果其 obj 引數不是 Int32 值,則一律會 false 傳回這個方法。 下列範例說明兩個方法多載之間的行為差異。 在 、 Int16SByteUInt16 值的情況下 Byte ,第一個比較會 true 傳回 ,因為編譯器會自動執行擴輾轉換並呼叫 方法,而第二個比較則會 false 傳回 ,因為編譯器會呼叫 Equals(Int32)Equals(Object) 方法。

C#
using System;

public class Example
{
   static int value = 112;

   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,15}", value.Equals(short1));
      TestObjectForEquality(short1);

      long long1 = 112;
      Console.WriteLine("value = long1: {0,17}", value.Equals(long1));
      TestObjectForEquality(long1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      ulong ulong1 = 112;
      Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1));
      TestObjectForEquality(ulong1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,19}", 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 (Int32) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int32) = 112 (Int16): False
//
//       value = long1:             False
//       112 (Int32) = 112 (Int64): False
//
//       value = sbyte1:            True
//       112 (Int32) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int32) = 112 (UInt16): False
//
//       value = ulong1:             False
//       112 (Int32) = 112 (UInt64): False
//
//       value = dec1:                False
//       112 (Int32) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int32) = 112 (Double): False

適用於

.NET 9 及其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Equals(Object)

來源:
Int32.cs
來源:
Int32.cs
來源:
Int32.cs

傳回值,該值表示這個執行個體是否和指定的物件相等。

C#
public override bool Equals (object obj);
C#
public override bool Equals (object? obj);

參數

obj
Object

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

傳回

如果 objInt32 的執行個體,並且等於這個執行個體的值,則為 true,否則為 false

範例

下列範例說明 Equals 在 的內容 Int32 中使用 ,比較兩 int 個值,如果兩個值代表相同的數位,則傳回 ;如果兩個值不相同,則 false 傳回 true

C#
Int32 myVariable1 = 60;
Int32 myVariable2 = 60;

// Get and display the declaring type.
Console.WriteLine("\nType of 'myVariable1' is '{0}' and"+
     " value is :{1}",myVariable1.GetType(), myVariable1);
Console.WriteLine("Type of 'myVariable2' is '{0}' and"+
     " value is :{1}",myVariable2.GetType(), myVariable2);

// Compare 'myVariable1' instance with 'myVariable2' Object.
if( myVariable1.Equals( myVariable2 ) )
   Console.WriteLine( "\nStructures 'myVariable1' and "+
         "'myVariable2' are equal");
else
   Console.WriteLine( "\nStructures 'myVariable1' and "+
         "'myVariable2' are not equal");

給呼叫者的注意事項

編譯器多載解析可能會考慮兩 Equals(Int32) 個方法多載的行為明顯差異。 如果引數與 之間的 Int32 隱含轉換 obj 已定義,且引數未輸入為 Object ,編譯器會執行隱含轉換並呼叫 Equals(Int32) 方法。 否則,他們會呼叫 Equals(Object) 方法,如果其 obj 引數不是 Int32 值,則一律會 false 傳回這個方法。 下列範例說明兩個方法多載之間的行為差異。 在 、 Int16SByteUInt16 值的情況下 Byte ,第一個比較會 true 傳回 ,因為編譯器會自動執行擴輾轉換並呼叫 方法,而第二個比較則會 false 傳回 ,因為編譯器會呼叫 Equals(Int32)Equals(Object) 方法。

C#
using System;

public class Example
{
   static int value = 112;

   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,15}", value.Equals(short1));
      TestObjectForEquality(short1);

      long long1 = 112;
      Console.WriteLine("value = long1: {0,17}", value.Equals(long1));
      TestObjectForEquality(long1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      ulong ulong1 = 112;
      Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1));
      TestObjectForEquality(ulong1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,19}", 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 (Int32) = 112 (Byte): False
//
//       value = short1:            True
//       112 (Int32) = 112 (Int16): False
//
//       value = long1:             False
//       112 (Int32) = 112 (Int64): False
//
//       value = sbyte1:            True
//       112 (Int32) = 112 (SByte): False
//
//       value = ushort1:            True
//       112 (Int32) = 112 (UInt16): False
//
//       value = ulong1:             False
//       112 (Int32) = 112 (UInt64): False
//
//       value = dec1:                False
//       112 (Int32) = 112 (Decimal): False
//
//       value = dbl1:               False
//       112 (Int32) = 112 (Double): False

另請參閱

適用於

.NET 9 及其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0