Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 동적(dynamic) 타입 변수와 객체(object) 타입 변수의 차이점 완벽 정리

C# 프로그래밍에서 동적(dynamic) 타입 변수에는 모든 형식의 값을 저장할 수 있으며, 이러한 변수에 대한 타입 검사는 런타임(실행 시점)에 수행됩니다.

반면 객체(object) 타입은 C# 공용 타입 시스템(CTS, Common Type System)에서 모든 데이터 타입의 최상위 기본 클래스입니다. objectSystem.Object 클래스의 별칭(alias)이며, 값 타입, 참조 타입, 미리 정의된 타입 또는 사용자 정의 타입 등 어떤 타입의 값이든 자유롭게 할당할 수 있습니다.

동적 타입과 객체 타입의 핵심 차이점

동적 타입은 객체 타입과 매우 유사하지만, 가장 중요한 차이점은 타입 검사가 수행되는 시점입니다.

  • object 타입 변수: 컴파일 시점(compile time)에 타입 검사가 이루어집니다.
  • dynamic 타입 변수: 런타임(runtime)에 타입 검사가 이루어집니다.

동적(dynamic) 타입 예제

dynamic z = 100;

객체(object) 타입 예제

object obj = 100;

이처럼 두 타입 모두 어떤 값이든 저장할 수 있다는 점에서는 동일하지만, object 타입은 컴파일 단계에서 오류를 미리 잡을 수 있어 코드 안정성 측면에서 유리합니다. 반면 dynamic 타입은 타입 검사가 런타임까지 지연되므로, 타입이 실행 중에 결정되는 유연한 처리가 필요한 상황에서 유용하게 활용됩니다.