C#
var 데이터 형식을 알아서 파악하는 c# 컴파일러 Usingvar
JAESEONG LEE- developer
2022. 7. 18. 16:01
컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다.
C#은 강력한 형식 검사를 하는 언어이지만, var 키워드를 통해서 약한 형식 검사를 하는 언어의 편리함도 지원합니다. int, string 같은 명시적 형식 대신 var을 이용해서 변수를 선언하면 컴파일러가 자동으로 해당 변수의 형식을 지정해줍니다. 단, var 키워드를 이용해서 변수를 선언하려면 반드시 선언과 동시에 초기화를 해줘야 합니다. 그래야 컴파일러가 데이터를 보고 형식을 결정할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using System;
namespace UsingVar
{
class MainApp
{
static void Main(string[] args)
{
var a = 20;
Console.WriteLine("Type: {0}, Value: {1}", a.GetType(), a);
var b = 3.1414213;
Console.WriteLine("Type: {0}, Value: {1}", b.GetType(), b);
var c = "Hello, World!";
Console.WriteLine("Type: {0}, Value: {1}", c.GetType(), c);
var d = new int[] { 10, 20, 30 };
Console.Write("Type: {0}, Value: ", d.GetType());
foreach (var e in d)
Console.Write("{0} ", e);
Console.WriteLine();
}
}
}
|
cs |

실행 결과입니다. var 형식과 object 형식이 다른 점은 var a = 20; 은 컴파일 시점에 컴파일러가 a에 적합한 데이터 형식을 파악해서 int a = 20;으로 바꿔 컴파일 합니다. CLR이 해당 코드를 실행할 때는 a가 var로 선언되었는지조차 눈치채지 못하고 int 형식의 객체 a에 20을 담아 스택에 올립니다.