하나. 매직 var
C# 3.0에는 변수 선언 var가 추가되었습니다. 이 선언은 JavaScript의 var와 유사하지만 다릅니다.
1. 마찬가지로 var를 사용하여 모든 유형의 지역 변수를 선언할 수 있습니다.
2. 차이점은 변수가 초기화 표현식을 기반으로 변수의 유형을 추론해야 한다는 점을 컴파일러에 알리는 역할만 담당하며 지역 변수만 될 수 있다는 점입니다.
둘. 유사점
선언될 수 있다
var 정수 = 10;
var name = "에디선동";
var 숫자 = new int[] { 1, 2, 3 };
삼. 차이점
var는 단지 키워드일 뿐입니다. 이는 C# 3.0의 새로운 유형이 아닙니다. 이는 변수가 초기화 표현식을 기반으로 변수 유형을 추론해야 함을 컴파일러에 알리는 역할을 합니다.
int 정수 = 10;
문자열 이름 = "에디순동";
int[] 숫자 = 새로운 int[] { 1, 2, 3 };
삼. 메모
1. 다음과 같은 구문이 있는 경우 할당 번호 오른쪽의 표현식에 따라 선언이 달라지므로 선언 시 값을 할당해야 합니다.
var 정수;
정수 = 10;
컴파일 중에 암시적으로 형식화된 로컬을 초기화해야 한다는 오류가 보고됩니다.
2. var를 사용하여 지역 변수를 선언한 후에도 여전히 강력한 유형을 가지며 다음과 같이 테스트할 수 있습니다.
var 정수 = 10;
정수 = "에디순동";
컴파일 중에 'string' 유형을 'int' 유형으로 암시적으로 변환할 수 없습니다. 오류가 보고됩니다.
3. 이니셜라이저 표현식의 컴파일 타임 유형은 빈(null) 유형일 수 없습니다. 컴파일러는 다음 명령문과 같이 null을 기반으로 지역 변수의 유형을 유추할 수 없습니다.
var 정수 = null;
암시적으로 유형이 지정된 로컬 오류에 '<null>'을 할당할 수 없습니다. 컴파일 중에 오류가 보고됩니다.
4. 초기화 문은 표현식이어야 합니다. 초기화 표현식은 그 자체를 포함할 수 없지만 개체 또는 컬렉션 이니셜라이저를 포함하는 새 표현식(예: 익명 유형)일 수 있습니다.
예를 들어 다음과 같이 선언할 수 있습니다.
var coll = new Hashtable();
5. var의 선언은 지역 변수로 제한되며 foreach, for 및 using 문에도 포함될 수 있습니다. 다음 사용법은 올바르지 않습니다.
수업 프로그램
{
private var i = 10; //전역 비공개 변수.
정적 무효 Main(string[] args)
{ }
}
상황별 키워드 'var'는 로컬 변수 선언 내에서만 나타날 수 있으며 컴파일 중에 보고되는 오류입니다.
이 기사는 CSDN 블로그에서 가져온 것입니다. 재인쇄할 때 출처를 표시하십시오: http://blog.csdn.net/superyoungchaos/archive/2009/12/23/5060696.aspx