1. 개념 설명
var는 지역 변수에서 컴파일러가 우변을 보고 타입을 추론하는 키워드입니다. 정적 타입 언어 특성상 런타임에 타입이 바뀌지 않으며 dynamic과 다릅니다. 우변이 타입을 명확히 드러낼 때 가독성이 좋아지며, 그 외에는 명시적 타입을 권장합니다.
2. 코드 예제
아래 예제는 숫자, 문자열, 컬렉션, 익명 형식과 LINQ에서의 타입 추론을 보여줍니다.
using System;
using System.Collections.Generic;
using System.Linq;
int explicitInt = 10;
var number = 42; // int
var text = "hello"; // string
var list = new List<int> { 1, 2, 3 };
var doubled = list.Select(n => n * 2).ToList(); // List<int>
var anon = new { Name = "Dotnet", Version = 8 }; // 익명 형식
var price = 1.0m; // decimal
var inferredInt = explicitInt + number;
Console.WriteLine(number.GetType().Name); // Int32
Console.WriteLine(text.ToUpper()); // HELLO
Console.WriteLine(string.Join(",", doubled)); // 2,4,6
Console.WriteLine($"{anon.Name}-{anon.Version}"); // Dotnet-8
Console.WriteLine(inferredInt.GetType().Name); // Int32
Console.WriteLine(price.GetType().Name); // Decimal
각 Console.WriteLine은 추론 결과를 확인합니다. 예를 들어 number는 int이며, 금액처럼 소수를 정확히 다룰 때는 1.0m으로 decimal을 유도합니다.
3. 주의사항/팁
var는 지역 변수 전용이며 필드나 매개변수에는 사용할 수 없습니다. var x = null;은 불가하니 string? s = null;처럼 목표 타입을 명시하세요. 빈 컬렉션은 우변에서 타입을 제공해야 하며, 숫자 리터럴은 기본적으로 int/double이므로 소수 금액에는 m 접미사를 사용하세요. LINQ 투영의 익명 형식은 var가 필수입니다.
'C#' 카테고리의 다른 글
| C# StringBuilder로 문자열 성능 최적화 (0) | 2026.04.10 |
|---|---|
| C# Enum 활용법 (0) | 2026.04.10 |
| C# 람다 식 (Lambda Expression) (1) | 2026.04.09 |
| C# using 문과 IDisposable (0) | 2026.04.08 |
| C# 튜플 (Tuple)과 분해 (0) | 2026.04.08 |