MSW에 local키워드가 있다면, C#에는 var키워드가 있다.
둘 다 메서드 내에 존재하는 지역 변수지만,
다른 점이 있으니 인지하고 있어야 한다.
var varInt = 10;
var varString = "Hi";
var varBool = true;
var varFloat = new float[5];
var에는 대부분 타입이 들어갈 수 있어서 local과 같이 사용할 생각이었지만,
- 한번 타입이 정해지면 변경 불가능 (
int → string불가능)- 반드시 초기화가 필요 (
var x;,var y = null;불가능)- 지역 변수로만 사용 가능 (메서드 내에서만 선언 가능)
local처럼 유연하게는 사용하기 어려워 보인다.
그럼 언제 사용하는 것일까?
// foreach문에서 사용
var isIntArray = new int[] { 1, 2, 3, 4, 5 };
foreach (var isInt in isIntArray)
{
Console.WriteLine(isInt);
}
foreach문에서 var를 사용하면 자동으로 isInt의 타입이 추론된다.
local처럼 유연하진 않지만, 타입을 자동으로 추론해주니
어렵지않게 사용할 수 있을 것 같다.