var
지역 변수를 선언할 때 컴파일러가 초기화 식에서 변수의 형식을 유추하도록 할 수 있다.
int value = 15; // 개발자가 직접 int 자료형 변수 선언
var value = 15; // 컴파일러가 직접 int 자료형 변수 선언
float value = 3.1415;
var value = 3.1415; // 컴파일러가 float 자료형으로 결정한다.
for(var x = 0; x < 10; x++) {}// for 문에서의 사용
foreach(var value in list) {} // foreach 문에서의 사용
using var value = new StreamReader("C:\\...") {} //using state문에서의 사용
선언만 하고 초기화를 하지 않으면 안된다.
var value; 처럼 선언만 해서는 안되며 반드시 값을 할당해야한다.전역변수로는 사용이 불가하다.
static var value = 2; // 전역 변수에서 var 키워드를 사용했기에 실제로 오류가 난다.
static void Main(){
.
.
}
static var AddValue(int a, int b){ // 함수 반환형 자리에 사용 불가능하다.
.
.
}
static int AddValue(var a, var b){ // 매개 변수 인자에 사용 불가능하다.
.
.
}
var 사용을 통해 자료형이 정해진 변수를 도중에 다른 타입으로 변경할 경우 에러가 발생한다.보통은 자료형이 복잡할 경우 var를 사용하면 훨씬 수월해진다.
List<List<int>> value = new List<List<int>>();
//이런 코드가 있다면
var value = new List<List<int>>();
//위와 같이 간단하게 사용할 수 있다.
var로 선언하면 컴파일러가 할당된 값을 확인하고 이에 맞는 변수의 타입을 결정하게 되기에, 개발자를 대신하여 올바른 타입을 명시하는 것이다. 이는 개발자가 올바르지 않은 타입을 지정하는 것을 방지한다.