본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 동적 형식(Dynamic)

by 공부하는개미 2021. 6. 14.
반응형

 

 

아래 글은 C# 동적 형식 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

 

 

 

 

📃 참고자료

 

  • C# 교과서(길벗 출판사) - 50단원 동적 형식 666 ~ 669페이지
  • 유튜브 채널 VisualAcademy [C# 교과서 마스터하기 50. 동적 형식]
  • 닷넷코리아 (https://www.dotnetkorea.com/)

 

 

 

 

https://www.youtube.com/watch?v=6sKaXWwfL38 

 

 

 

C#은 정적(static) 형식의 언어입니다. 하지만 C# 4.0 버전부터는 파이썬과 자바스크립트처럼 동적 형식도 지원합니다.

 

✳ 동적 형식(Dynamic)

 

- 컴파일 시점이 아닌 런타임 시점에서 형식이 정해지는 특수한 유형의 형식

  • 컴파일 타임에 형식이 지정되는 프로그램은 편합니다.
    바로 int, string 형으로 변수를 선언한 후 해당 값을 사용하면 됩니다.
  • 런타임에 형식이 지정되는 프로그램이 필요할 수 있습니다.
    이때는 dynamic 키워드를 사용하여 변수를 선언할 수 있습니다.

  • dynamic 키워드는 데이터 형식 자리에 오지만, dynamic은 데이터 형식이 아닙니다.
    즉, dynamic 키워드는 특정 데이터 형식을 지칭하지 않습니다.

  • var 키워드와 비슷하나 컴파일할 때 데이터 형식을 결정하는 var와 달리,
    dynamic 키워드는 런타임할 때 데이터 형식을 결정합니다.

  • 모든 데이터 형식을 선언하는 자리에는 dynamic 키워드를 사용할 수 있습니다.
  • 동적 형식은 다른 동적 언어와 통신에 유용합니다.

 

 

 

 

 

 

✳ 예제코드

//[?] dynamic 키워드: 런타임에 데이터 형식이 결정되는 변수를 생성
using System;

class DynamicDemo
{
    static void Main()
    {
        string ss = "안녕하세요."; //[1] 코드 작성시 문자열로 판단
        Console.WriteLine(ss.Length); // 인텔리센스의 도움 받음

        var vs = "반갑습니다."; //[2] 컴파일시 문자열로 판단
        Console.WriteLine(vs.Length); // 인텔리센스의 도움 받음

        dynamic ds = "또 만나요."; //[3] 런타임시 문자열로 판단
        Console.WriteLine(ds.Length); // 인텔리센스의 도움 못 받음

        ds = 1234; // [4]런타임시 숫자형으로 판단
        Console.WriteLine(ds * 10); // 숫자형 연산이 가능: 12340
    }
}
반응형