더북(TheBook)

50.3 동적 바인딩

런타임할 때 데이터 형식을 결정하는 것을 동적 바인딩(dynamic binding)이라고 합니다.

> dynamic now = DateTime.Now;
> int hour = now.Hour;
> Console.WriteLine(hour);
3
> now.NoProperty
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.DateTime'에 'NoProperty'에 대한 정의가 없습니다.
  + System.Dynamic.UpdateDelegates.UpdateAndExecute1<T0, TRet>(System.Runtime.CompilerServices.CallSite, T0)

DateTime 구조체 형식에는 NoProperty 속성이 없기에 컴파일 시점에는 에러가 발생하지 않지만, 런타임 시점에서는 에러가 발생합니다.

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