Programing

유형 대신 var를 사용해야하는 이유는 무엇입니까?

lottogame 2020. 6. 13. 10:10
반응형

유형 대신 var를 사용해야하는 이유는 무엇입니까? [복제]


가능한 중복 :
ReSharper 및 var

ReSharper를 설치 한 후 가능한 경우 항상 var를 사용해야합니다 (예 : 경고).

UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;

ReSharper는 그것을

var ue = (UnhandledExceptionEventArgs) t;

나는 첫 번째 버전을 더 좋아한다. var 를 선호하는 이유가 있습니까? 더 나은 성능? 아무것도? 아니면 코드 스타일입니까?


실제로 코딩 스타일 일뿐입니다. 컴파일러는 두 변형 모두에 대해 정확히 동일하게 생성합니다.

성능 문제는 여기를 참조하십시오.


"경고"라고 말할 때 정확히 무엇을 의미합니까? 나는 보통 var를 사용하고 싶을 수도 있지만 경고만큼 가혹한 것은 아니라는 힌트를주는 것으로 나타났습니다 .

var와 성능 차이는 없습니다. 코드는 동일한 IL로 컴파일됩니다. 잠재적 인 이점은 가독성에 있습니다. 과제의 RHS에서 변수 결정 유형을 이미 명확하게 설정 한 경우 (예 : 캐스트 또는 생성자 호출을 통해) LHS에서도 이점이있는 이점은 무엇입니까? 그래도 개인적인 취향입니다.

R #에서 var 사용을 제안하지 않으려면 옵션을 변경하십시오. ReSharper에 대한 한 가지 : 매우 구성 가능합니다. :)


다른 사람들이 말했듯이 다음 중 하나를 사용할 때 컴파일 된 코드 (IL)에는 차이가 없습니다.

var x1 = new object();
object x2 = new object;

Resharper는 [제 생각에 첫 번째 예제를 두 번째 예제보다 읽기가 더 쉽기 때문에 경고한다고 가정합니다. 또한 유형의 이름을 두 번 반복 해야하는 이유는 무엇입니까?

다음을 고려하면 내가 의미하는 바를 얻을 수 있습니다.

KeyValuePair<string, KeyValuePair<string, int>> y1 = new KeyValuePair<string, KeyValuePair<string, int>>("key", new KeyValuePair<string, int>("subkey", 5));

대신 이것을 읽는 것이 더 쉽습니다.

var y2 = new KeyValuePair<string, KeyValuePair<string, int>>("key", new KeyValuePair<string, int>("subkey", 5));

에서 이 경우 그냥 코딩 스타일입니다.

의 사용은 var익명 형식을 처리하는 경우에만 필요합니다.
다른 상황에서는 맛의 문제입니다.

참고 URL : https://stackoverflow.com/questions/4868477/why-should-i-use-var-instead-of-a-type

반응형