2014-01-19 3 views
-1

의 어느 빠른 실행하고 메모리의 최소한의 사용 다음어느 것이 더 낫습니다, "var array = ..."또는 "string [] array = ..."?

var array = new string[5]; 

또는

string[] array = new string[5]; 

은 또한, 이러한 진술의 차이점 무엇을? 더 difference.First 일이 없습니다

+0

아니요, 최종 편집 결과가 동일합니다. –

+0

시도해주세요. http://stackoverflow.com/questions/356846/will-using-var-affect-performance – puretppc

답변

4

컴파일러는 동일한 것으로 간주합니다.

var array = new string[5]; 

IL :

IL_0001: ldc.i4.5  
IL_0002: newarr  System.String 
IL_0007: stloc.0  // array 

첫 번째 예에서 string[] array = new string[5];

IL_0001: ldc.i4.5  
IL_0002: newarr  System.String 
IL_0007: stloc.0  // array 

를 들어, var 키워드는 컴파일러가 추론 할 수 있습니다 여기 LINQPad에서 일부 IL가 보여입니다 유형은 array입니다. 컴파일러는이 코드를 string 배열로 간주하므로 두 예제의 IL 코드가 완전히 동일합니다.

1

implicit type definition이고, 두 번째는 명시 적 유형 definition.There 그것은이 정확히 같은 IL 코드로 컴파일됩니다 여기

2

메모리 효율성에 대해 아무것도이다. 유형은 array이고 사용법에서 유추되며 컴파일러는 첫 번째 경우에 string[] 유형의 변수를 생성합니다.

그냥 MSDN에 대한 var (C# Reference) 알려줍니다 무엇을 읽어

C# 비주얼 3.0에서 시작, 방법 범위에서 선언 된 변수는 암시 적 타입 VAR을 가질 수 있습니다. 암시 적으로 형식화 된 로컬 변수는 사용자가 형식을 선언 한 것처럼 강력하게 형식화되지만 컴파일러에서 형식을 결정합니다. 다음 2 개의 선언은 기능적으로 동일합니다.

var i = 10; // 암시 적으로 입력 됨

int i = 10; // 명시 적으로 형식화 됨

관련 문제