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/
'번역 > C# Notes for Professionals' 카테고리의 다른 글
34.4: Generic 메소드에 익명 타입 사용하기 (0) | 2021.11.23 |
---|---|
34.3: 익명 (anonymous) 타입의 동일성 (equality) (0) | 2021.11.22 |
34.1: Anonymous 와 dynamic 타입 비교 (0) | 2021.11.19 |
33.1: 내장 (Built-In) 타입 테이블 (0) | 2021.11.19 |
32.7: 값 타입 (Value type) - bool (0) | 2021.11.19 |