선생님 안녕하세요!
// 예제 ①
namespace Test
{
class Program
{
static void Main(string[] args)
{
var data = "정성태";
Console.WriteLine($"{data}");
}
}
}
// 예제 ②
namespace Test
{
class Program
{
static void Main(string[] args)
{
var data = new { Id = 1, Name = "정성태" };
Console.WriteLine($"{data.Id} - {data.Name}");
}
}
}
[질문 1]
예제 ①의 경우 var 타입 대신에 string을 입력하면 되지만
예제 ②의 경우에는 어떤 타입을 지정해주어야 할까요?
예제 ②의 var에 마우스를 올려놓으면
AnonymousType a 익명 형식 :
a은(는) new { int Id, string Name } 가 표시되는데 var 대신 어떤 타입을 적어야 하는지
힌트가 되지 않는 것 같습니다...
컴파일러는 분명히 var의 타입을 컴파일시에 데이터 타입을 결정지어야 하는데
혹시 컴파일러가 임의로 Id와 Name 개체를 가진 클래스를 생성 후, 내부적으로 var 대신 사용하는 것인가요?
[질문 2]
컴파일러가 익명 클래스는 어떤 원리로 타입을 결정하는지 궁금합니다.
항상 친절하고 쉬운 설명 해주셔서 감사드립니다~!!
친구(?) 이름으로 커피 선물 드렸어요!
[최초 등록일: ]
[최종 수정일: 4/15/2021]