C# 4.0에서 도입된 dynamic 키워드는 런타임에 데이터 형식이 결정되는 변수를 선언할 수 있게 합니다. 이것은 컴파일 타임에 형식 검사를 건너뛰게 되며, 대신 런타임에 해당 작업을 수행하게 됩니다.
아래는 dynamic 키워드를 사용한 몇 가지 예시입니다:
기본 사용:
dynamic value = 10;
value = "Hello, World!";
Console.WriteLine(value); // Outputs: Hello, World!
이 코드에서 value는 처음에는 정수로 설정되었지만, 다음 줄에서 문자열로 변경되었습니다.
런타임 예외:
dynamic 변수를 사용할 때는 컴파일 시 타입 검사가 수행되지 않기 때문에 잘못된 멤버 액세스는 런타임에 예외를 발생시킵니다.
dynamic data = new { Name = "John" };
Console.WriteLine(data.Age); // Throws a runtime exception because 'Age' doesn't exist.
COM 및 Reflection과의 상호작용:
dynamic은 COM 객체나 Reflection을 사용할 때 특히 유용합니다. 예를 들어, Reflection을 사용하여 메서드를 동적으로 호출하는 대신 dynamic을 사용하여 코드를 간소화할 수 있습니다.
using System.Reflection;
var assembly = Assembly.Load("SomeAssembly");
var type = assembly.GetType("SomeNamespace.SomeType");
dynamic instance = Activator.CreateInstance(type);
// Instead of using reflection to call the method, we can call it directly on the dynamic object.
instance.SomeMethod();
dynamic 키워드는 유연성을 제공하지만 오버헤드가 있으므로 성능이 중요한 상황에서는 주의하여 사용해야 합니다. 또한, dynamic 변수는 컴파일 타임 형식 검사를 제공하지 않으므로 잠재적인 오류를 발견하기 위해 추가 테스트가 필요할 수 있습니다.
'워크 > C# 5.0' 카테고리의 다른 글
새로운 라이브러리와 API (0) | 2023.09.02 |
---|---|
성능 최적화 (0) | 2023.09.01 |
속성 강화 (0) | 2023.08.31 |
Windows Runtime (WinRT) 지원 (0) | 2023.08.30 |
Filtered Exception Handling (0) | 2023.08.29 |