Var type
Peponi │ 11/27/2024 │ 3m
C#
SyntaxTypevar
Var type
11/27/2024
3m
Peponi
C#
SyntaxTypevar
1. Introduction
var 키워드는 컴파일러가 변수의 형식을 유추하도록 한다. 초기화 식을 이용해 유추하며, 형식을 유추할 수 없는 경우 CS0246
에러가 발생한다. 참조 형식인 경우 var
키워드는 nullable
형식으로 유추한다. (C# 9 이상)
초기화 식에 형식이 포함되는 경우 코드를 줄이기 위해 사용하기도 한다.
2. Example
var varTest = new ABC(); // CS0246: 'ABC' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.
// .NET framework 4.7.2
var varTest = "ABC"; // var = string
// .NET 5 이상
var varTest = "ABC"; // var = string?
var X = new List<int>();
3. 익명 형식에서 사용
익명 형식에서는 var
키워드를 사용해야 한다. 따로 형식을 정의할 필요 없이 사용 가능하여 편리하지만, 형식 이름을 코드에서 직접 사용할 수 없기 때문에 var
키워드가 필요하다.
// var = AnonymousType 'a?
// 'a 은(는) new { int A, double B }
var anonymousTest = new { A = 0, B = 1.1 }; // A = int, B = double
public record CartesianCoordinate(string Series, List<double> X, List<double> Y);
// var = System.Collections.Generic.IEnumerable<out 'a>?
// 'a 은(는) new { List<double> X, List<double> Y }
var coordinateData = from coordinate in coordinates
where coordinate.Series.Contains("2D")
select new { coordinate.X, coordinate.Y };
쿼리 식을 이용하여 익명 형식으로 유추하게 되는경우 IEnumerable
형식으로 지정되지만 out
타입이 'a
이다. 따라서 반복문 foreach를 이어 호출하는 경우 역시 var
키워드가 필요하다.
foreach (var data in coordinateData)
{
Console.WriteLine(string.Join(',', data.X));
Console.WriteLine(string.Join(',', data.Y));
}