Section 6.2: Equals 의 기본 동작

EqualsObject 클래스 자체에 아래와 같이 정의가 되어있다.

public virtual bool Equals(Object obj);

Equals 는 다음과 같은 기본 동작을 가지고 있다:

  • 만약 instance 가 reference 타입이라면, Equals 는 두 reference 가 동일할 때 true 를 반환한다.
  • 만약 instance 가 값 (value) 타입이라면, Equals 는 타입과 값 자체가 동일할 때 true 를 반환한다.
  • string 은 특별한 경우로, 값 타입처럼 동작한다.
namespace ConsoleApplication { public class Program { public static void Main(string[] args) { //areFooClassEqual: False Foo fooClass1 = new Foo("42"); Foo fooClass2 = new Foo("42"); bool areFooClassEqual = fooClass1.Equals(fooClass2); Console.WriteLine("fooClass1 and fooClass2 are equal: {0}", areFooClassEqual); //False //areFooIntEqual: True int fooInt1 = 42; int fooInt2 = 42; bool areFooIntEqual = fooInt1.Equals(fooInt2); Console.WriteLine("fooInt1 and fooInt2 are equal: {0}", areFooIntEqual); //areFooStringEqual: True string fooString1 = "42"; string fooString2 = "42"; bool areFooStringEqual = fooString1.Equals(fooString2); Console.WriteLine("fooString1 and fooString2 are equal: {0}", areFooStringEqual); } } public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } } }
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts