Section 6.2: Equals 의 기본 동작
Equals
는 Object
클래스 자체에 아래와 같이 정의가 되어있다.
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/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
6.4: IEqualityComparer 에서의 Equals 와 GetHashCode (0) | 2020.11.25 |
---|---|
6.3: 사용자 정의 타입에 대해 Equals 와 GetHashCode 재정의하기 (0) | 2020.11.25 |
6.1: 바람직한 GetHashCode 재정의하기 (0) | 2020.11.20 |
5.1: C# 에서의 동일성 (equally) 종류와 동일 연산자 (0) | 2020.11.19 |
4.3: If-Else If-Else 문 (0) | 2020.11.17 |