var
코드의 가독성을 높이면서 코드의 즉각적인 이해를 줄입니다. 마찬가지로 다른 상황에서도 코드의 가독성이 떨어질 수 있습니다. 때로는 그것을 사용하는 것이 중립적입니다. 이해력에 대한 가독성 척도는 비례하지 않지만 상황에 따라 다릅니다. 때로는 둘 다 함께 증가 또는 감소합니다.
요인은 var
적용 대상과 대상이 독자에게 데이터 유형의 즉각적인 난독 화를 지원하는 정도 또는 현재 프로그램 부분을 이해하기 위해 유형 정보가 필요한지 여부입니다.
예를 들어, 이름이 잘못 var
되면 코드 이해력이 떨어질 수 있습니다 . 그러나 이것은 var
잘못이 아닙니다.
var value1 = GetNotObviousValue(); //What's the data type?
//vs.
var value2 = Math.Abs(-3); // Obviously a numeric data type.
때로는 var
코드가없는 상태에서 코드를 더 읽기 쉽도록 간단한 데이터 유형 에 사용 하는 것이 적합하지 않은 경우가 있습니다.
var num = GetNumber(); // But what type of number?
// vs.
double num = GetNumber(); // I see, it's a double type.
때로는 var
다음과 같은 복잡성을보기 위해 신경 쓰지 않아도되는 데이터 유형 정보를 숨기는 것이 유용 할 수 있습니다.
IEnumerable<KeyValuePair<string,List<Dictionary<int,bool>>>> q = from t in d where t.Key == null select t; // OMG!
//vs.
var q = from t in d where t.Key == null select t;
// I simply want the first string, so the last version seems fine.
q.First().Key;
당신은 있어야 사용 var
하여 호출 할 유형 이름이 없기 때문에 익명 타입의 존재있을 때 :
var o = new { Num=3, Name="" };
에 불구하고 유형 정보를 제공하는 Visual Studio Intellisense var
를 사용하는 경우, 도움없이 엄격한 코드 읽기를 통해 이해에 의존 할 필요가 없습니다. 모든 사람이 Intellisense를 가지고 있거나 사용하지 않는 것으로 가정하는 것이 현명 할 것입니다.
위의 예를 바탕으로 요약하면,var
대부분의 작업은 적당히 수행되고 여기에 표시된 상황에 따라 이루어지기 때문에 카르테 헤의 적용은 좋은 생각이 아닙니다.
Resharper가 기본적으로 왜 전체를 사용합니까? 나는 그것을 사용하지 않는 것이 가장 좋은시기를 결정하기 위해 상황의 뉘앙스를 파싱 할 수 없기 때문에 쉽게 제안 할 것입니다.