Section 34.2: 익명 (anonymous) 타입 생성하기

익명 (anonymous) 타입은 타입 이름이 주어지지 않기에, 이 타입의 변수들은 묵시적 타입 이름을 사용하게 된다 (var).

var anon = new { Foo = 1, Bar = 2 }; // anon.Foo == 1 // anon.Bar == 2

만약 멤버 변수의 이름이 별도로 기술되지 않는 경우에는, 해당 객체를 초기화시킬 때 사용되었던 속성 혹은 변수의 이름으로 설정된다.

int foo = 1; int bar = 2; var anon2 = new { foo, bar }; // anon2.foo == 1 // anon2.bar == 2

유의할 점은, 이러한 익명 타입 선언에 사용된 표현식이 속성 접근과 같이 단순한 경우에만 생략이 가능하다는 것이다; 메소드 호출이나 혹은 더 복잡한 표현식을 사용하고자 하는 경우에는, 속성의 이름을 별도로 기술해 주어야 한다.

string foo = "some string"; var anon3 = new { foo.Length }; // anon3.Length == 11 var anon4 = new { foo.Length <= 10 ? "short string" : "long string" }; // "Invalid anonymous type member declarator" 컴파일 에러가 발생한다. var anon5 = new { Description = foo.Length <= 10 ? "short string" : "long string" }; // 문제 없음
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

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

반응형

+ Recent posts