BCL에서 개인 로컬 변수에 밑줄을 사용하는 것 같습니다. 나는 그들을 사용하지는 않지만 다음과 같이 벗어나십시오 :개인 로컬 변수의 밑줄?
int count = 0;
this.Count++;
public int Count
...
public ClassName (int count)
{
this.Count = count;
}
당신의 생각은 어떻습니까? 그들은 내 접근 방식에 문제가 있습니까?
BCL에서 개인 로컬 변수에 밑줄을 사용하는 것 같습니다. 나는 그들을 사용하지는 않지만 다음과 같이 벗어나십시오 :개인 로컬 변수의 밑줄?
int count = 0;
this.Count++;
public int Count
...
public ClassName (int count)
{
this.Count = count;
}
당신의 생각은 어떻습니까? 그들은 내 접근 방식에 문제가 있습니까?
이것은 기본적으로 스스로 결정하고 스타일 가이드를 찾아서 따라야합니다.
개인적으로 저는 개인 필드의 접두어로 _를 사용합니다.
개인 변수를 나타내는 데 밑줄을 사용하지 않아도됩니다. 그것은 모두 개인적인 취향입니다. 나는 단지 Intellisense가 실수로 내 public 속성을 사용하는 대신 로컬 변수를 사용하고 있다는 것을 알고 있기 때문에 사용합니다.
IMO와 마찬가지로 private 멤버 변수의 이름을 속성, 메서드 또는 다른 어떤 것과 동일하게 지정해서는 안됩니다. 이름이 지정된 작업 항목이 무엇인지 분명해야합니다. 이렇게하면 코드를 더 쉽게 이해하고 유지할 수 있으며 코드를 유지해야하는 개발자 나 개발자가 프로그래밍 오류를 줄일 수 있습니다.
또한 코드를 VB로 이식하려는 경우 해당 특정 명명이 작동하지 않습니다. 왜 VB로 전환하고 싶은지 확실하지 않지만 발생합니다.
VB 포트 이외의 이유는 무엇이라고 생각하십니까? 소규모 인 경우 비공개인가요? 너는 다른 생각을하고 있었던거야? –
변수의 범위를 결정할 수 없기 때문에 인스턴스 변수로 가득 찬 매우 큰 클래스를 보았습니다. 유지 관리가 매우 어려웠습니다. 그러나 더 작은 클래스로 리팩토링해야한다는 증상입니다. 합리적인 양의 개인 상태 변수가있는 소규모 클래스에서 접두사가없는 인스턴스 변수는 유지하기 쉽고 이해하기 쉽습니다. –
감사합니다. Michael, 예를 들어 주시겠습니까? 내 접근법을 사용하여 어떻게 이름을보고 변수의 범위를 알 수 없게 될지 모르겠습니다. –
밑줄을 사용합니다. 변수 범위를 확인하고 명명 충돌 가능성을 줄이는 데 도움이됩니다.
밑줄은 대소 문자를 구분하지 않는 언어 (예 : VB.Net)에 더 적합합니다. C#과 같은 언어에서는 순전히 개인적인 취향에 따라 분류됩니다.
모호한 지정 앞에 this.
을 넣지 않으려는 경우 밑줄을 사용하십시오.
private int that;
public void AssignThat(int that)
{
that = that; // assigns to method scope variable, not instance scope
}
의 FxCop 또는 R # 당신이 잡을해야하고, 난 당신이 컴파일러 경고를 믿을 하지만이 가능합니다 : 그들없이, 당신은 때때로 실수로이 같은 일을 할 수 있습니다.
예. 변수를 자체에 할당하면 컴파일러 경고가 표시됩니다. – Albic
@Albic, 고마워. R #은 항상 이러한 문제를 해결해 주므로 컴파일 부분에 도달하지 못합니다. –
접두어 IntelliSense를 사용하는 실제적인 이유가 있습니다. ATM은 현재 인스턴스 변수와 상속 된 프로퍼티/변수를 구분하지 못하도록 braindamaged됩니다. 그래서 개인 변수에 '_'를 사용하면 VS 코드 편집기에서 Intellisense 목록 및 함수/변수 목록 내에서 변수를 쉽게 찾을 수 있습니다. 그래서 그것은 넓은 범위의 헝가리 표기법입니다.
여기서 우리가 사용하는 간단한 규칙은 다음과 같습니다. 변수 이름을 포함한 클래스의 개인 구현 세부 정보는 개발자가 직접 작성해야합니다. 공용/보호 된 메서드 이름, 속성, 클래스 이름 등은 모범 사례 지침의 적용을받습니다. 내부 형식은 공개적으로 볼 수 없기 때문에이 형식의 일부로 간주 될 수도 있습니다.
누군가 다른 사람이 라이브러리를 사용해야 할 때 내부 또는 개인용 유형을 사용할 필요가 없으며 밑줄을 사용 했는지도 알 수 없습니다. 즉, 이것은 사용자가 결정합니다.
나중에 다른 사람이 코드를 유지해야 할 경우 나중에 너무 복잡해서는 안된다는 사실을 명심하십시오.
인스턴스 변수 명명 규칙에 대해서는 절대로 일치하지 않습니다. –
http://stackoverflow.com/questions/450238/to-underscore-or-to-not-to-underscore-that-is-the-question과 매우 유사 –
이 질문은 분명 주관적이지만 확실하지 않습니다. 논쟁에 대해서. OP는 그녀의 접근 방식에 문제가 있는지 묻습니다. 잠재적 인 문제가 있으며 탐구 할 가치가 있습니다. 나는이 질문이 순전히 명성을 얻는 것이라고 생각하는 경향이 있지만 그 공로가있다. –