더북(TheBook)

처음에 없던 Email 속성을 추가해서 할당해도 예외가 발생합니다.

> duck = new { Id = 3, Name = "Duck 3", Email = "Email 3" };
(1,8): error CS0029: 암시적으로 '<anonymous type: int Id, string Name, string Email>' 형식을 '<anonymous type: int Id, string Name>' 형식으로 변환할 수 없습니다.

처음에 선언할 때 개체 형태로 값을 할당하면 정상적으로 할당 및 출력됩니다.

> duck = new { Id = 3, Name = "Duck 3" };
> $"{duck.Id} - {duck.Name}"
"3 - Duck 3"

처음 개체가 만들어지면 그 형식과 동일한 형태로만 다시 할당됩니다. 이러한 내용을 덕 타이핑이라고 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.