var를 이용하면 암시적으로 타입변환해서 사용할수있음
- 반복문이나 LINQ사용시 리턴되는 데이터타입관련없이 사용할수있다는 장점이 있으나
아래 서술되는 항목처럼 몇가지 제한 사항이 존재합니다.
- private, public 등 클래스의 필드데이터로 쓸 수 없다
- 반환값으로 쓸수없다
- 매개변수타입으로 쓸 수 없다
- null 초기화 못함. 컴파일러가 변수의 타입을 추정할 수 없으므로
단, 참조타입의 경우 할당 후 null할당은 가능
- 형식 제약이 엄격한 타입이므로 원래 초기값과 다른 타입의 값을 가질 수 없다
- nullable지정은 불가능
class Program
{
//private var m_Int = 10; 필드데이터로 쓸수없다
//public var m_str = "HELLO";
//static var ReturnMethod(var i, var n) { } 반환값, 매개변수 타입으로 쓸수없다
static void Main(string[] args)
{
var v1 = 10;
var v2 = "HELLO";
//var v3 = null; null로 초기화 못함
//var? v4 = null; nullable로 지정할수없다
string[] strs = new string[] { "ABCD", "DDD", "EEE", "FFF" };
Console.WriteLine("v1:" + v1);
Console.WriteLine("v2:" + v2);
v2 = null; //초기값(참조타입) 할당후 null할당은 허용.
Console.WriteLine("v2:" + v2);
//v2 = 100; 원래 초기값과 다른 타입의 값을 가질수없다
//반복문
foreach(var s in strs)
Console.WriteLine("string: {0}", s);
//LINQ
var res = from s in strs
where s.StartsWith("A") //"A"로 시작되는 항목을 LINQ이용해서 가져오기
select s;
foreach(var s in res)
Console.WriteLine("s:" + s);
}
}
'C#' 카테고리의 다른 글
[C#] Using 사용처 (0) | 2019.11.11 |
---|