C#의 동적 데이터 형식(dynamic) 변수에는 어떤 타입의 값이든 자유롭게 저장할 수 있습니다. 일반적인 변수와 달리, dynamic 형식 변수에 대한 타입 검사는 컴파일 시점이 아닌 런타임(실행 시점)에 수행됩니다.
이 dynamic 형식은 C# 4.0에서 처음 도입되었으며, 컴파일 타임의 엄격한 타입 검사를 우회할 수 있도록 설계되었습니다.
dynamic 형식 선언 문법
dynamic 변수를 선언하는 기본 문법은 다음과 같습니다.
dynamic <변수명> = 값;
object 형식과의 차이점
dynamic 형식은 object 형식과 매우 유사해 보이지만, 결정적인 차이가 있습니다.
- object 형식: 컴파일 시점에 타입 검사가 수행됩니다.
- dynamic 형식: 런타임 시점에 타입 검사가 수행됩니다.
즉, dynamic 변수는 컴파일러가 타입을 강제하지 않기 때문에 개발 단계에서는 유연성이 높지만, 잘못된 타입 사용 시 오류가 실행 중에 발생할 수 있다는 점을 유의해야 합니다.
예제 코드
다음은 dynamic 변수를 선언하고 해당 변수의 실제 타입을 확인하는 예제입니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
// dynamic 변수에 정수 값 할당
dynamic a = 25;
// 런타임에 실제 타입 확인
Console.WriteLine(a.GetType().ToString());
Console.ReadLine();
}
}
}위 코드에서 변수 a는 dynamic으로 선언되었지만 정수 25가 할당되었으므로, GetType() 메서드를 호출하면 System.Int32가 출력됩니다. 이처럼 dynamic 변수는 할당된 값에 따라 런타임에 실제 타입이 결정됩니다.