방법: 쿼리 식에서 암시적으로 형식화된 지역 변수 및 배열 사용(C# 프로그래밍 가이드)
업데이트: 2011년 4월
컴파일러가 지역 변수의 형식을 확인하도록 하려고 할 때마다 암시적으로 형식화된 지역 변수를 사용할 수 있습니다. 쿼리 식에서 자주 사용되는 익명 형식을 저장하려면 암시적으로 형식화된 지역 변수를 사용해야 합니다. 다음 예제에서는 암시적으로 형식화된 지역 변수를 쿼리에 선택적으로 사용할 수 있는 경우와 필수적으로 사용해야 하는 경우를 모두 보여 줍니다.
암시적으로 형식화된 지역 변수는 var 컨텍스트 키워드를 사용하여 선언됩니다. 자세한 내용은 암시적으로 형식화된 지역 변수(C# 프로그래밍 가이드) 및 암시적으로 형식화된 배열(C# 프로그래밍 가이드)을 참조하십시오.
예제
다음 예제에서는 var 키워드가 필요한 일반적인 시나리오 즉, 익명 형식의 시퀀스를 생성하는 쿼리 식을 보여 줍니다. 이 시나리오에서는 사용자에게 익명 형식의 형식 이름에 대한 액세스 권한이 없기 때문에 쿼리 변수와 foreach 문의 반복 변수 모두 var를 사용하여 암시적으로 형식화되어야 합니다. 익명 형식에 대한 자세한 내용은 익명 형식(C# 프로그래밍 가이드)을 참조하십시오.
private static void QueryNames(char firstLetter)
{
// Create the query. var is required because
// the query produces a sequence of anonymous types.
var studentQuery =
from student in students
where student.FirstName[0] == firstLetter
select new { student.FirstName, student.LastName };
// Execute the query.
foreach (var student in studentQuery)
{
Console.WriteLine("First = {0}, Last = {1}", student.FirstName, student.LastName);
}
}
다음 예제에서는 비슷한 상황이지만 var 사용이 선택적인 상황에서 var 키워드가 사용됩니다. student.LastName이 문자열이므로 쿼리를 실행하면 문자열의 시퀀스가 반환됩니다. 따라서 queryID의 형식을 var 대신 System.Collections.Generic.IEnumerable<string>으로 선언할 수 있습니다. var 키워드는 편의를 위해 사용됩니다. 예제에서 foreach 문의 반복 변수는 명시적으로 문자열로 형식화되지만 대신 var를 사용하여 선언될 수도 있습니다. 반복 변수의 형식은 익명 형식이 아니기 때문에 var 사용은 필수가 아닌 선택입니다. var 자체는 형식이 아니라 컴파일러가 형식을 유추하고 할당하도록 지정하는 명령입니다.
var queryID =
from student in students
where student.ID > 111
select student.LastName;
foreach (string str in queryID)
{
Console.WriteLine(str);
}
참고 항목
참조
개념
기타 리소스
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2011년 4월 |
쉽게 이해할 수 있도록 텍스트 내용이 추가되었습니다. |
고객 의견 |