영어로 읽기

다음을 통해 공유


Object.Equals 메서드

정의

두 개체 인스턴스가 같은지 확인합니다.

오버로드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

Equals(Object, Object)

지정한 개체 인스턴스가 동일한지 여부를 확인합니다.

Equals(Object)

Source:
Object.cs
Source:
Object.cs
Source:
Object.cs

지정된 개체가 현재 개체와 같은지 확인합니다.

C#
public virtual bool Equals (object obj);
C#
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)

Source:
Object.cs
Source:
Object.cs
Source:
Object.cs

지정한 개체 인스턴스가 동일한지 여부를 확인합니다.

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

매개 변수

objA
Object

비교할 첫 번째 개체입니다.

objB
Object

비교할 두 번째 개체입니다.

반환

개체가 동일한 것으로 간주되면 true이고, 간주되지 않으면 false입니다. objAobjBnull인 경우 메서드는 true를 반환합니다.

예제

다음 예제에서는 메서드를 Equals(Object, Object) 보여 줍니다 하 고 메서드와 ReferenceEquals 비교 합니다.

C#
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같은지 여부를 나타냅니다. 또한 값이 null 인 개체를 같음으로 테스트할 수도 있습니다. 다음과 같이 및 objB 같음을 비교 objA 합니다.

  • 두 개체가 동일한 개체 참조를 나타내는지 여부를 결정합니다. 이 경우 메서드는 를 반환합니다 true. 이 테스트는 메서드를 호출하는 ReferenceEquals 것과 같습니다. 또한 및 objB 가 모두 objAnull이면 메서드는 를 반환합니다true.

  • 또는 objBnull인지 여부를 objA 결정합니다. 이 경우 를 반환합니다 false.

  • 두 개체가 동일한 개체 참조를 나타내지 않고 둘 다 null이 아닌 경우 를 호출합니다 objA.Equals(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