英語で読む

次の方法で共有


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 値。

戻り値

obj の値がこのインスタンスと同じ場合は true。それ以外の場合は false

実装

注釈

このメソッドは インターフェイスを実装し、パラメーターを System.IEquatable<T> オブジェクトに変換する必要がないため、 よりも Int32.Equals(Object) 少し優れたパフォーマンスを obj 発揮します。

注意 (呼び出し元)

コンパイラ オーバーロードの解決では、2 つの Equals(Int32) メソッド オーバーロードの動作の明らかな違いが考慮される場合があります。 引数と の間のobj暗黙的な変換が定義されていて、引数が としてObject型指定されていない場合、コンパイラは暗黙的な変換を実行し、 メソッドをEquals(Int32)呼び出Int32します。 それ以外の場合は、 メソッドをEquals(Object)呼び出します。このメソッドは、引数がobj値でない場合は常に をInt32falseします。 次の例は、2 つのメソッド オーバーロードの動作の違いを示しています。 、Int16、、および の値のByte場合、コンパイラtrueが拡大変換を自動的に実行して UInt16 メソッドを呼び出すのに対し、2 番目の比較では メソッドが呼び出Equals(Int32)されるため、最初の比較は をEquals(Object)falseSByteします。

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使用を示しています。2 つのint値を比較し、同じ数値をtrue表す場合は false を返します。そうでない場合は を返Int32します。

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");

注意 (呼び出し元)

コンパイラ オーバーロードの解決では、2 つの Equals(Int32) メソッド オーバーロードの動作の明らかな違いが考慮される場合があります。 引数と の間のobj暗黙的な変換が定義されていて、引数が としてObject型指定されていない場合、コンパイラは暗黙的な変換を実行し、 メソッドをEquals(Int32)呼び出Int32します。 それ以外の場合は、 メソッドをEquals(Object)呼び出します。このメソッドは、引数がobj値でない場合は常に をInt32falseします。 次の例は、2 つのメソッド オーバーロードの動作の違いを示しています。 、Int16、、および の値のByte場合、コンパイラtrueが拡大変換を自動的に実行して UInt16 メソッドを呼び出すのに対し、2 番目の比較では メソッドが呼び出Equals(Int32)されるため、最初の比較は をEquals(Object)falseSByteします。

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