2009-04-28 5 views
3

BCL에서 개인 로컬 변수에 밑줄을 사용하는 것 같습니다. 나는 그들을 사용하지는 않지만 다음과 같이 벗어나십시오 :개인 로컬 변수의 밑줄?

int count = 0; 

this.Count++; 

public int Count 
... 

public ClassName (int count) 
{ 
    this.Count = count; 
} 

당신의 생각은 어떻습니까? 그들은 내 접근 방식에 문제가 있습니까?

+2

인스턴스 변수 명명 규칙에 대해서는 절대로 일치하지 않습니다. –

+0

http://stackoverflow.com/questions/450238/to-underscore-or-to-not-to-underscore-that-is-the-question과 매우 유사 –

+0

이 질문은 분명 주관적이지만 확실하지 않습니다. 논쟁에 대해서. OP는 그녀의 접근 방식에 문제가 있는지 묻습니다. 잠재적 인 문제가 있으며 탐구 할 가치가 있습니다. 나는이 질문이 순전히 명성을 얻는 것이라고 생각하는 경향이 있지만 그 공로가있다. –

답변

3

이것은 기본적으로 스스로 결정하고 스타일 가이드를 찾아서 따라야합니다.

개인적으로 저는 개인 필드의 접두어로 _를 사용합니다.

1

개인 변수를 나타내는 데 밑줄을 사용하지 않아도됩니다. 그것은 모두 개인적인 취향입니다. 나는 단지 Intellisense가 실수로 내 public 속성을 사용하는 대신 로컬 변수를 사용하고 있다는 것을 알고 있기 때문에 사용합니다.

1

IMO와 마찬가지로 private 멤버 변수의 이름을 속성, 메서드 또는 다른 어떤 것과 동일하게 지정해서는 안됩니다. 이름이 지정된 작업 항목이 무엇인지 분명해야합니다. 이렇게하면 코드를 더 쉽게 이해하고 유지할 수 있으며 코드를 유지해야하는 개발자 나 개발자가 프로그래밍 오류를 줄일 수 있습니다.

또한 코드를 VB로 이식하려는 경우 해당 특정 명명이 작동하지 않습니다. 왜 VB로 전환하고 싶은지 확실하지 않지만 발생합니다.

+0

VB 포트 이외의 이유는 무엇이라고 생각하십니까? 소규모 인 경우 비공개인가요? 너는 다른 생각을하고 있었던거야? –

+1

변수의 범위를 결정할 수 없기 때문에 인스턴스 변수로 가득 찬 매우 큰 클래스를 보았습니다. 유지 관리가 매우 어려웠습니다. 그러나 더 작은 클래스로 리팩토링해야한다는 증상입니다. 합리적인 양의 개인 상태 변수가있는 소규모 클래스에서 접두사가없는 인스턴스 변수는 유지하기 쉽고 이해하기 쉽습니다. –

+0

감사합니다. Michael, 예를 들어 주시겠습니까? 내 접근법을 사용하여 어떻게 이름을보고 변수의 범위를 알 수 없게 될지 모르겠습니다. –

1

밑줄을 사용합니다. 변수 범위를 확인하고 명명 충돌 가능성을 줄이는 데 도움이됩니다.

1

밑줄은 대소 문자를 구분하지 않는 언어 (예 : VB.Net)에 더 적합합니다. C#과 같은 언어에서는 순전히 개인적인 취향에 따라 분류됩니다.

모호한 지정 앞에 this.을 넣지 않으려는 경우 밑줄을 사용하십시오.

private int that; 

public void AssignThat(int that) 
{ 
    that = that; // assigns to method scope variable, not instance scope 
} 

의 FxCop 또는 R # 당신이 잡을해야하고, 난 당신이 컴파일러 경고를 믿을 하지만이 가능합니다 : 그들없이, 당신은 때때로 실수로이 같은 일을 할 수 있습니다.

+1

예. 변수를 자체에 할당하면 컴파일러 경고가 표시됩니다. – Albic

+0

@Albic, 고마워. R #은 항상 이러한 문제를 해결해 주므로 컴파일 부분에 도달하지 못합니다. –

0

접두어 IntelliSense를 사용하는 실제적인 이유가 있습니다. ATM은 현재 인스턴스 변수와 상속 된 프로퍼티/변수를 구분하지 못하도록 braindamaged됩니다. 그래서 개인 변수에 '_'를 사용하면 VS 코드 편집기에서 Intellisense 목록 및 함수/변수 목록 내에서 변수를 쉽게 찾을 수 있습니다. 그래서 그것은 넓은 범위의 헝가리 표기법입니다.

2

여기서 우리가 사용하는 간단한 규칙은 다음과 같습니다. 변수 이름을 포함한 클래스의 개인 구현 세부 정보는 개발자가 직접 작성해야합니다. 공용/보호 된 메서드 이름, 속성, 클래스 이름 등은 모범 사례 지침의 적용을받습니다. 내부 형식은 공개적으로 볼 수 없기 때문에이 형식의 일부로 간주 될 수도 있습니다.

누군가 다른 사람이 라이브러리를 사용해야 할 때 내부 또는 개인용 유형을 사용할 필요가 없으며 밑줄을 사용 했는지도 알 수 없습니다. 즉, 이것은 사용자가 결정합니다.

나중에 다른 사람이 코드를 유지해야 할 경우 나중에 너무 복잡해서는 안된다는 사실을 명심하십시오.