英語で読む

次の方法で共有


Object.Equals メソッド

定義

2 つのオブジェクト インスタンスが等しいかどうかを判断します。

オーバーロード

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

Equals(Object, Object)

指定されたインスタンスが等しいかどうかを判断します。

Equals(Object)

ソース:
Object.cs
ソース:
Object.cs
ソース:
Object.cs

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

public virtual bool Equals (object obj);
public virtual bool Equals (object? obj);

パラメーター

obj
Object

現在のオブジェクトと比較するオブジェクト。

戻り値

指定したオブジェクトが現在のオブジェクトと等しい場合は true。それ以外の場合は falseです。

注釈

この API の詳細については、「 Object.Equals の補足 API 解説」を参照してください。

こちらもご覧ください

適用対象

.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

Equals(Object, Object)

ソース:
Object.cs
ソース:
Object.cs
ソース:
Object.cs

指定されたインスタンスが等しいかどうかを判断します。

public static bool Equals (object objA, object objB);
public static bool Equals (object? objA, object? objB);

パラメーター

objA
Object

比較する最初のオブジェクト。

objB
Object

比較する 2 番目のオブジェクト。

戻り値

オブジェクトが等しいと見なされた場合は true。それ以外の場合は falseobjAobjB の両方が null の場合、このメソッドは true を返します。

次の例では、 メソッドを Equals(Object, Object) 示し、 メソッドと ReferenceEquals 比較します。

using System;

public class Example
{
   public static void Main()
   {
      Dog m1 = new Dog("Alaskan Malamute");
      Dog m2 = new Dog("Alaskan Malamute");
      Dog g1 = new Dog("Great Pyrenees");
      Dog g2 = g1;
      Dog d1 = new Dog("Dalmation");
      Dog n1 = null;
      Dog n2 = null;

      Console.WriteLine("null = null: {0}", Object.Equals(n1, n2));
      Console.WriteLine("null Reference Equals null: {0}\n", Object.ReferenceEquals(n1, n2));

      Console.WriteLine("{0} = {1}: {2}", g1, g2, Object.Equals(g1, g2));
      Console.WriteLine("{0} Reference Equals {1}: {2}\n", g1, g2, Object.ReferenceEquals(g1, g2));

      Console.WriteLine("{0} = {1}: {2}", m1, m2, Object.Equals(m1, m2));
      Console.WriteLine("{0} Reference Equals {1}: {2}\n", m1, m2, Object.ReferenceEquals(m1, m2));

      Console.WriteLine("{0} = {1}: {2}", m1, d1, Object.Equals(m1, d1));
      Console.WriteLine("{0} Reference Equals {1}: {2}", m1, d1, Object.ReferenceEquals(m1, d1));
   }
}

public class Dog
{
   // Public field.
   public string Breed;

   // Class constructor.
   public Dog(string dogBreed)
   {
      this.Breed = dogBreed;
   }

   public override bool Equals(Object obj)
   {
      if (obj == null || !(obj is Dog))
         return false;
      else
         return this.Breed == ((Dog) obj).Breed;
   }

   public override int GetHashCode()
   {
      return this.Breed.GetHashCode();
   }

   public override string ToString()
   {
      return this.Breed;
   }
}
// The example displays the following output:
//       null = null: True
//       null Reference Equals null: True
//
//       Great Pyrenees = Great Pyrenees: True
//       Great Pyrenees Reference Equals Great Pyrenees: True
//
//       Alaskan Malamute = Alaskan Malamute: True
//       Alaskan Malamute Reference Equals Alaskan Malamute: False
//
//       Alaskan Malamute = Dalmation: False
//       Alaskan Malamute Reference Equals Dalmation: False

注釈

静的 Equals(Object, Object) メソッドは、 objAobjBの 2 つのオブジェクトが等しいかどうかを示します。 また、値が null のオブジェクトの等価性をテストすることもできます。 と を比較しobjBobjA次のように等しいかどうかについて説明します。

  • 2 つのオブジェクトが同じオブジェクト参照を表すかどうかを判断します。 その場合、メソッドは を返します true。 このテストは、 メソッドの呼び出しと ReferenceEquals 同じです。 さらに、 と objB の両方objAnull の場合、メソッドは を返しますtrue

  • または が null かどうかをobjA判断しますobjB その場合は、 が返されます false

  • 2 つのオブジェクトが同じオブジェクト参照を表せず、どちらも null でない場合は、 を呼び出します objAEquals(objB) を指定すると、結果が返されます。 つまり、メソッドを objA オーバーライドすると Object.Equals(Object) 、このオーバーライドが呼び出されます。

こちらもご覧ください

適用対象

.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