타입 추론 : 선언의 초기화 프로그램은 추론 엔진을 구동하는 데 사용되며 필수입니다. 따라서 다음은 위법입니다 :타입 추론 : 선언의 초기화 프로그램은 추론 엔진을 구동하는 데 사용되며 반드시 필요합니다.
var obj2 ://ERROR :must have an intializer
var obj3=null :ERROR :must have a specific type
추론이 성공적으로 가정하면, 추론 유형이 감지 컴파일러에 의해보고 된 유형의 평소 명백한 오용 영구 및 컴파일 진행된다 :
var obj4 ="hi!";
obj4.Close();//Oops,wrong object!(Error:'string does not contain' 'Close')
의 개념 VAR을 혼동하지 마십시오 VB 변형 (그것의 아닙니다) 또는 w ith javascript (var는 실제로 객체를 의미 함)와 같은 동적 언어로 var의 개념을 ith. 변수의 유형이 변경 될 수 있으므로 런타임시 유형 검사가 수행되므로 안전성 비용이 증가 된 유연성이 향상됩니다. 유형을 변경할 수없고 유추 타입이 객체 인 경우 모든 유형 검사는 컴파일 거라구 예에서 이루어집니다 # 3.0 c를 당신이 vaery 작은 기능의 obect 참조하여 결국에, (아래 obj6 만) : 내가 느끼는
object obj5="hi"; //obj5 references the string "hi!",but type is object
var obj6 =obj5; //obj6 also references "hi!",with inferred type object
.
.
.
string si=obj6.ToUpper(); //ERROR:'object' does not contain 'ToUpper'
결정한다 달성하기 위해? – haim770
# 1은'var'에 문제가 없으므로'string'을'object'에 넣고'string' 메소드를 호출 할 때 문제가됩니다. # 2는 존재하지 않는 메소드를 호출하려는 것입니다. 뭐가 문제 야? – Rawling
그것은 var 키워드의 제한이 아니라 var 키워드에 대한 이해입니다. 두 가지 오류 모두 완벽합니다. –