Section 34.3: 익명 (anonymous) 타입의 동일성 (equality)
익명 (anonymous) 타입의 동일성 (equality) 은 Equals
인스턴스 메소드를 통해 결정된다. 두 객체가 모든 속성들에 대하여 동일한 타입과 값을 가질 경우 (a.Prop.Equals(b.Prop)
를 통해) 둘은 동일하다고 간주된다.
var anon = new { Foo = 1, Bar = 2 };
var anon2 = new { Foo = 1, Bar = 2 };
var anon3 = new { Foo = 5, Bar = 10 };
var anon3 = new { Foo = 5, Bar = 10 };
var anon4 = new { Bar = 2, Foo = 1 };
// anon.Equals(anon2) == true
// anon.Equals(anon3) == false
// anon.Equals(anon4) == false (anon 과 anon4 는 다른 타입을 가진다, 아래 설명을 참고한다)
두 익명 타입은 타입의 각 속성들이 동일한 이름과 타입, 그리고 동일한 순서로 나타났을때에만 동일하다고 간주된다.
var anon = new { Foo = 1, Bar = 2 };
var anon2 = new { Foo = 7, Bar = 1 };
var anon3 = new { Bar = 1, Foo = 3 };
var anon4 = new { Fa = 1, Bar = 2 };
// anon 과 anon2 는 동일한 타입을 갖는다
// anon 과 anon3 는 다른 타입을 갖는다 (Bar 와 Foo 가 나타난 순서가 다르다)
// anon 과 anon4 는 다른 타입을 갖는다 (속성 이름이 다르다)
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
34.5: Generic 타입을 익명 (anonymous) 타입으로 인스턴스 생성하기 (instantiate) (0) | 2021.11.23 |
---|---|
34.4: Generic 메소드에 익명 타입 사용하기 (0) | 2021.11.23 |
34.2: 익명 (anonymous) 타입 생성하기 (0) | 2021.11.22 |
34.1: Anonymous 와 dynamic 타입 비교 (0) | 2021.11.19 |
33.1: 내장 (Built-In) 타입 테이블 (0) | 2021.11.19 |