본문 바로가기

워크/C# 5.0

dynamic 키워드의 향상

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