2012-08-10 2 views
1

필자는 스타일 코프를 사용하여 사람들이 이전에 세트 코드 표준을 따르지 만 필요에 맞게 설정했는지 확인했습니다. 며칠 동안 지금은 Style Cop을 기본 설정으로 사용해 보았습니다. 그리고 나는 약간의 문제에 당황스러워합니다. 예를 들어 변수를 선언하면 실제로 어떤 유형인지를 밝히고 싶습니다.Style Cops의 기본 구성 스타일은 얼마나 흔합니까?

int foo; 

또는

Bar foo = new Bar(); 

스타일 경찰은 당신이 var 키워드를 많이 사용하고 싶어. 저는 컴파일러와 IDE가 인스턴스화를 통해 유형을 파악할 수 있음을 알고 있습니다.

var foo = 1; // Makes foo and int 
    var foo = new Bar(); // Makes foo a Bar 

선언과 인스턴스화가 한 단계에서 완료되면 그 일은 상당히 눈에.니다.

Style Cop이 좋아하는 것 같지 않은 몇 가지 더 있습니다. 기본적으로 표준 Style Cop 구성에 의해 적용되는 코딩 스타일이 얼마나 일반적인 지 알고 싶습니다. ?

참고 : var의이 사용은 hvd에서 설명한대로 유효하지 않습니다. 나를 var의 조금 더 나은 느낌이 들도록했다;). 이

하지만 원래의 질문에 이후 나는 그것을에서 떠나하지만

var foo 

    ... bunch of code ... 

    foo = getLatestData(); 

같은 일부 애매한 일이있는 경우는 foo이 될 것을 분명 아니다. 그러나 foo의 선언을 보면 더 똑똑해지지 않을 것입니다. 대신 getLatestData 함수의 선언을 살펴 봐야합니다.

나는 var 접근 구름이 모든 것을 조금 느낀다. fooint이라는 것을 선언하면 얻을 수있는 것과 같은 엄격한 통제가 없습니다. 그런 다음 foo이고 항상int입니다. 그것은 그것의 데이터를 얻는 것에 의존하지 않습니다. 이런 식으로 두 가지 유형의 foo를 얻을 수 있습니다. 두 기능은 동일한 유형을 반환해야하고 foo 따라서 여러 가지가 될 수 있음을 시행 거기에 아무것도

var foo; 

... 

if(status == 0) { 
    foo = getLatestData(); 
} 
else { 
    foo = getOtherData(); 
} 

. 코드를 직접 작성하면이 코드가 포함되어있어 추적하기가 쉽습니다. 그러나 API 나 Plugin 라이브러리의 경우 외부 제 3 자 개발자가 foo의 형식을 추운 경우 악몽이 될 수 있습니다. 그럴 경우 어떻게 할 지 확신 할 수 없기 때문입니다.

+5

'var foo;'는 유효하지 않습니다. 'var'는 이니셜 라이저에서만 사용할 수 있으며 이니셜 라이저의 유형 만 사용됩니다. – hvd

+0

Ahhh, 저에 대해 이미 기분이 나아질 것입니다.) – inquam

+0

언제나 Stylecop 규칙 세트를 사용자 정의 할 수 있으며 실제로 그렇게해야합니다 (예 : 많은 Stylecop 규칙이 Resharper 규칙과 충돌 함).이 규칙 세트는 다음과 같이 사용됩니다. 팀의 모든 개발자. 그리고 "당신은 foo가 항상 int임을 알고 있습니다. 그것은 데이터의 결과가 무엇인지에 달려 있지 않습니다."- 내 생각에 그것은 좋은 것입니다. int 대신 long으로 리턴하는 메소드로 변경하면, 저는 해당 메소드를 사용하는 코드를 수정할 필요가 없습니다. – Giedrius

답변

0

var에 대한 몇 가지 오해가 있습니다. 의견에 포함되어 있으며 연결된 MSDN 참조에서 명확히 설명되어 있습니다.

실제 질문에 대해서는 기본 Style Cop 규칙 세트에 의해 시행되는 코드 스타일이 최소한 기본 Style Cop 규칙 세트의 사용법만큼이나 공통적이라고 추론합니다. 이 대답은 당연히 동어 반복이지만, 질문의 남은 자에게 정확합니다.

var 키워드에 대해 더 많은 우려 사항이있는 경우 주제에 대한 많은 기존 답변 (여기, 스택 오버플로)을 참조하십시오.