태그 보관물: coding-standards

coding-standards

C #에서 개인 변수의 이름을 어떻게 지정합니까? [닫은] 답변, 사실, 참고

C #에서 개인 변수에 가장 잘 사용되는 명명 규칙은 무엇입니까?

  1. private int myInteger;
  2. private int MyInteger;
  3. private int mMyInteger;
  4. private int _myInteger;
  5. private int _MyInteger;
  6. 신비한 다른 옵션

어느 것을 사용하고 왜? (저희 회사는 C #을 처음 접했고 코딩 표준에 들어가기 위해 가장 “업계에서 인정 된”방법을 선택하고 싶습니다.)



답변

MSDN 클래스 디자인 지침 http://msdn.microsoft.com/en-us/library/ta31s3bc.aspx 는 옵션 1-myInteger를 권장합니다.

나는 항상이 스타일을 사용했습니다. 나는 _ 캐릭터를 개인적으로 싫어합니다.


답변

위의 옵션 # 4를 사용합니다.

private int _myInteger;

변수 이름에 범위를 표시하고 싶습니다. 밑줄로 충분합니다. 읽기도 쉽습니다.


답변

다음과 같은 명명 체계를 사용합니다.

  • 지역 범위 변수의 첫 번째 (myInteger)
  • 공공 재산에 대한 두 번째 (MyInteger)
  • 개인 변수의 네 번째 (_myInteger)

답변

옵션 4가 실제로 가장 읽기 쉬운 옵션이라고 생각합니다. 이를 수행하는 데 도움이됩니다.

public Person(string name, int age)
{
    this.name = name;
    this.age = age;
}

또한 모든 개인 구성원이 더 눈에 띄게 만듭니다. 다음 예에서 도대체 어디 age에서 왔습니까? this한정자가 없으면 말하기가 더 어렵습니다.

private void Method()
{
    var x = 2;
    var y = age + x;
}

이것은 이해하기 쉽습니다.

private void Method()
{
    var x = 2;
    var y = _age + x;
}

답변

우선, PascalCasing은 일반적으로 클래스의 공용 속성, const, 메서드 등을 위해 예약되어 있습니다. 그래서 나는 2와 5를 건너 뛸 것입니다.

둘째, 헝가리어 표기법은 .NET 세계에서는 권장되지 않으므로 3은 옳습니다. 그것이 3으로 진행되고 있다고 가정합니다.

camelCasing과 _camelCasing이 남습니다. 나는 일반적으로 클래스 변수에 _camelCasing을 사용하고 메소드 범위 또는 더 좁은 범위의 변수에 대해서는 일반 오래된 camelCasing을 사용합니다. 낙타 케이싱은 분석법 인수, 보호 / 개인 변수 이름 및 분석법 또는 더 좁은 범위 내 변수에 사용되는 표준입니다.

또한 내 개인 변수가 내 지능으로 그룹화되도록 밑줄을 추가하고 싶습니다. 그러나 유형 범위의 변수에 대해서만이 작업을 수행합니다. 메소드 또는 더 좁은 범위 내에서 선언 된 변수는 밑줄을 생략합니다. 변수를 쉽게 분리하고 덜 사용 된 변수를 함께 유지할 수 있습니다.


답변

private int integer

메소드 범위에서 멤버 변수와 로컬 변수가 혼동되면 리팩토링해야합니다.


답변

C # /. net에서 가장 좋은 방법은 2와 6의 조합이라고 생각합니다.

private int MyInteger { get; set; }

이론적으로 여기에는 변수가 없지만 개인 인스턴스 변수처럼 보이고 작동합니다. 비즈니스 로직을 그 가치에 추가해야하는 경우 (완전히 내부 가치이므로 결국 원하는 모든 것을 할 수 있음) 이미 ‘속성 화’된 것입니다. 뜨거운 김이 나는 컵!