반응형
아래 글은 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
}
}
반응형
'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글
C# 클래스 라이브러리(Class Library) (0) | 2021.06.16 |
---|---|
C# 튜플(Tuple) (0) | 2021.06.15 |
닷넷 프레임워크와 닷넷 코어 차이 (0) | 2021.06.13 |
C# 확장 메서드(Extension Method) 만들기 (0) | 2021.06.13 |
C# 제네릭(Generic) 클래스 만들기 (0) | 2021.06.12 |