English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C#에서 변수는 데이터 타입을 사용하여 선언해야 하며, 이를 명시적 타입 변수라고 합니다.
int i = 100;// 명시적 변수
C#3.0는 var 키워드를 사용하여 메서드 수준 변수를 선언할 수 있게 하여 데이터 타입을 명시적으로 지정하지 않습니다.
var j = 100; // 임의적 타입의 로컬 변수
컴파일러는 = 연산자의 오른쪽에 있는 표현식에서 변수의 타입을 추론합니다. 위에서 var는 int로 컴파일됩니다.
표현식에서 타입을 추론합니다.
int i = 10; var j = i + 1; // int로 컴파일됩니다
var는 어떤 내장 데이터 타입, 사용자 정의 타입 또는 익명 타입 변수를 선언할 수 있습니다. 아래의 예제는 C# 컴파일러가 값을 기반으로 타입을 추론하는 것을 보여줍니다:
static void Main(string[] args) { var i = 10; Console.WriteLine("i 타입은 {0}입니다", i.GetType()); var str = "Hello World!!"; Console.WriteLine("str 타입은 {0}입니다", str.GetType()); var dbl = 100.50d; Console.WriteLine("dbl 타입은 {0}입니다", dbl.GetType()); var isValid = true; Console.WriteLine("isValid 타입은 {0}입니다", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("ano 타입은 {0}입니다", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("arr 타입은 {0}입니다", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("파일 타입은 {0}입니다", file.GetType()); }
은답 유형 변수는 선언 시 초기화되어야 합니다; 그렇지 않으면 C# 컴파일러는 오류를 발생시킵니다: 은답 유형 변수를 초기화해야 합니다.
var i; // 컴파일 시 오류: 은답 유형 변수를 초기화해야 합니다 i = 100;
var는 단일 문장에서 변수를 다시 선언할 수 없습니다.
var i = 100, j = 200, k = 300; // 오류: var 변수를 단일 문장에서 선언할 수 없습니다//다음 내용도 유효합니다 var i = 100; var j = 200; var k = 300;
var는 함수 매개변수로 사용할 수 없습니다.
void Display(var param) //컴파일 시 오류 { Console.Write(param); }
var는 for와 foreach 루프에서 사용할 수 있습니다.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var는 LINQ 쿼리와 함께 사용할 수 있습니다.
// 문자열 집합 IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Learn C"++", "MVC Tutorials", "Java" }; // LINQ 쿼리 문법 var result = from s in stringList where s.Contains("Tutorials") select s;