처음에 없던 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"
처음 개체가 만들어지면 그 형식과 동일한 형태로만 다시 할당됩니다. 이러한 내용을 덕 타이핑이라고 합니다.