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/

반응형

+ Recent posts