문제

의심할 여지없이,그것은 필수적인 이해를 위한 코드를 주는 멤버변수는 접두어 그렇게 그들은 쉽게 구분할 수 있습에서"정상"변수입니다.

그러나 어떤 종류의 접두사 당신은 당신을 사용하는가?

저는 프로젝트에 우리 사용되는 m_ 으로 접두사,다른 프로젝트에 우리 사용되는 밑줄만(나 개인적으로 좋아하지 않기 때문에,밑줄만하지 않은 실증분).

다른 프로젝트에 우리 사용되는 장 접두사 양식을 포함한 이 변수는 유형입니다. mul_ 예를 들어 접두사로의 m엠버변수 유형 unsigned long.

이제 내가 알고있는 어떤 종류의 접두사 당신은 사용이(및 주시는 이유한다).

편집: 당신의 대부분이 보이지 않고 코드는 특별한 접두사를 위한 구성원 변수!이에 따라 달라집니다.내 경험에서 C++코드 사용하는 경향이있다 또는 밑줄 m_ 에 대한 접두사로 구성원 변수입니다.무엇에 대해 다른 언어로 사용할 수 있습니까?

도움이 되었습니까?

해결책

의심할 여지없이,그것은 필수적인 이해를 위한 코드를 주는 멤버변수는 접두어 그렇게 그들은 쉽게 구분할 수 있습에서"정상"변수입니다.

나는 분쟁이 있다.그것은 조금이라도 필요한 경우 반 괜찮은 구문 강조.좋은 IDE 하도록 할 수 있습 쓰는 코드에서 읽을 수 있는 영어를 보여줄 수 있습니다 당신의 유형 및 범위의 상징하는 다른 방법이다.이클립스가 좋은 일을 강조하여 선언하고 사용하의 상징을 때 삽입 지점에서 그들 중 하나입니다.

편집,감사 slim:좋은 syntax highlighter 같은 이은 또한 당신이 대담한 사용 또는 이탤릭체 텍스트 글꼴을 변경합니다.예를 들어,같은 이탤릭체로 정적에 대한 것들입니다.

다른 편집:이런 식으로 생각;의 유형 및 범위의 변수조정보.그것은 사용할 수 있어야 하고 밖으로 쉽게 찾을 수 있지만,외쳤습니다.당신이 사용하는 경우 같은 접두사 m_ 또는 형식 LPCSTR, 는가된 소음,할 때는 그냥 읽고 싶은 기본 정보 목적의 코드입니다.

세 번째 편집:이 적용되는 언어에 관계없이.

다른 팁

내가 사용하지 않는 모든 접두사에서 모두.실행하는 경우로의 위험을 혼합 지역 변수 또는 방법을 매개 변수를 반원들과 함께 다음 방법 중 하나 또는 클래스가 너무 길어서 분할.

이(틀림없이)하지만 코드를 읽을 수 있으며 다소"유창하게"하지만 가장 중요한 것은 을 권장 잘 구축되는 클래스와 방법.에 따라서 귀결하는 완전히 다른 문제보다는 접두어 또는 접두사 dillema.

업데이트:론,취향과 환경 설정을 변경하지 않는,그들은 그들..지금 사용은 밑줄로 접두사를 위해 회원으로 변수를 입증되었습니다 도움이에서 인식하는 지역 및 구성원 변수에 실행됩니다.특히 새로운 팀 구성원이 때로는 힘든 시간을 할 때 두 가지는 쉽게 알아볼 수 있습니다.

제한 없음.내가 사용하는 데 사용되는 밑줄만 이야기는 그것의 프로젝트에서 다른 사람을 좋아하지 않았다,그것을 놓치지 않습니다.제 IDE 또는 괜찮은 메모리를 구성원이 변수하고 무엇을 하지 않습니다.개발자 중 하나에서 우리의 프로젝트 주장에 넣고"다."앞에 모든 멤버변수,그리고 우리는 유머 그 때 우리는 작업 중인 지역의 코드는 명목상으로"자신의".

밑줄만 있습니다.

내 경우에,내가 그것을 사용하기 때문에 코딩 표준 문서에서 말한 내 직장합니다.그러나 나는 볼 수 없는 지점의 추가 m_ 또는 끔찍한 헝가리의 일의 시작 부분에 변수입니다.의 미니멀'밑줄만'계속 읽을 수 있습니다.

그것이 더 많은 일치하는 것이 중요하이 무엇보다,그래서 뭔가를 선택은 당신과 당신의 동료에 동의하고 그것으로 스틱.는 경우고 있어 언어 코딩에는 컨벤션,당신이 시도해야 한다.아무것도다 더 복잡는 코드는 다음에 추가한 일관성 규칙.

C++,다른 이유가 있을아보세요 m_ 통해_는 사실 외_때로는 접두사를 컴파일러를 키워드가 있습니다.M 대 구성원에 대한 변수입니다.이것은 또한 당신에게 능력을 명확하게 구분 사이에 지역 주민과는 다른 클래스의 변수,s_ 를 위해 정적과 g_ 을 위한 글로벌(물론 사용하지 않는 globals).

으로 대한 의견 IDE 항상 당신은 IDE 정말 유일한 방법은 당신이 찾고있는에서 당신의 코드?귀하의 diff 도구가 동일 수준의 품질에 대한 구문을 hilighting 으로 귀하의 IDE?에 대해 무엇의 소스 제어에 수정 역사 도구입니까?당신은 결코하지 않더라도 고양이 소스 파일을 명령행?현대 IDE 의 환상적인 효율성 도구지만,코드가 쉽게 읽을 수 있 컨텍스트에 관계없이 당신은 그것을 읽는다.

내가 선호하는 사용 this 키워드입니다.즉 this.datathis->data 대신 사회에 따라 지명하고 있다.

기:

  • 으로 요즘 Ide 입력 this. 팝업 intellinsense
  • 그것의 분명한 모든 알 수없는 정의된 명명

BTW 붙 변수 문자를 나타내는 자신의 유형이 오래된 좋은 Ide 및 생각나이 요엘의 문서

우리가 사용하는 m_ 한 다음 약간 수정된 시모 표기처럼,Rob 말한다 이전에 응답합니다.그래서 붙인 데 유용하고 m_ 무 방해하고 쉽게 검색이 가능합니다.

왜 표기까요?그리고 왜 그냥 따라(습니다.NET)Microsoft 권장 사항을 표기하는 의지에 따라 케이스의 이름?

후자의 질문에 먼저:가 VB.NET 는 무관심이다.그래서 데이터베이스(특히)Dba.때가 바로 customerID 및 CustomerID(에서,말씀,C#),그들어.그래서 케이스 형태로 표기하지만,매우 효과적인 하나입니다.

접두사가 표기가 가치에는 여러 가지 방법:

  1. 증가 인간 이해의 코드를 사용하지 않고 있네.으로 검토 코드에서는 내가 여전히 발견 할 수있는 가장 쉬운 방법에는 종이 처음입니다.
  2. 적 쓰 T-SQL 또는 다른 RDBMS 저장되었?를 사용하여 접두사가 표기 데이터베이스에서 열 이름은 정말 도움이 특히 좋아하는 사람들을 사용하여 텍스트 편집기 위해 이런 종류의 물건입니다.

어쩌면에서 짧은 붙임의 한 형태로 표기하기 때문에 유용은 여전히 있는 개발 환경에서는 스마트 Ide 를 사용할 수 없습니다.에 대해 생각 IDE(소프트웨어 도구)으로도 우리에게 몇 가지 바로가기(활 입력)지만,포함하는 전체적인 개발환경 통합관리가 가능합니다.

IDE 통합 개발 환경에서 같은 방법으로는 자동차가 운송 네트워크:의 한 부분이 더 큰 시스템입니다.나는 원하지 않을 따르는"차량"협약처럼에 머무는 표시로 도로,때때로,그것의 더 빨리 그냥 산책을 통해 빈집을 많이합니다.에 의존하 IDE 추적 변수를 입력 것처럼 필요로 하는 자동차의 GPS 를 걸을 통해 빈집을 많이합니다.더 나은 기술(어색할 수 있는가"m_intCustomerID")휴대용 양식보다 다시 실행에 대한 자동차의 모든 작은 변화의 물론입니다.

는 말했다,m_ 컨벤션 또는"이"컨벤션은 모두를 읽을 수 있습니다.우리는 다음과 같 m_ 기 때문에 그것은 쉽게 검색할 수 있습니 변수에 입력하는 그것을 따르십시오.에 동의하는 평범한 밑줄을 사용해서 너무 많은 다른 프레임워크 코드는 활동입니다.

를 사용하여 C#에 나서'm_'-접두사 단 밑줄, 이후'm_'가 는 유산에서는 C++.

공식 Microsoft 지침을 당신에게 말을 사용하지 않는 모든 접두사를 사용 낙타-케이스에서 개인원파스칼은 경우에는 공공 구성원.문제는 이와 충돌하는 또 다른 지침에서 동일한 원본,미국 해야 하는 모든 코드와 호환되는 모든 언어로 사용됩니다.NET.예를 들어,VB.NET 를 만들지 않는 차이는 케이스.

그래서 그냥 있는 밑줄습니다.이것은 또한 쉬운 액세스를 활 및 외부만 코드를 호출하는 공공 구성원이 있지 않을 보는 시각적으로 지저분한 밑줄.

업데이트:나는 생각하지 않아요 C#"다."-접두사 하는 데 도움이"나."VB 에서는 여전히"입니다.나이에"동일한으로"입니다.연령".

에 따라 달라지는 framework 를 사용하고!는 경우 쓰 MFC 코드는 다음 사용 m_ 헝가리 notation.다른 것들에 대한(는 경향이 있 STL/Boost)다음에 추가 밑줄 접미사는 모든 구성원 변수와 나는 귀찮게 하지 않으로 헝가리 notation.

MFC 는 클래스

class CFoo  
{  
private:  
    int m_nAge;  
    CString m_strAddress;  
public:  
    int GetAge() const { return m_nAge; }  
    void SetAge(int n) { m_nAge = n; }  
    CString GetAddress() const { return m_strAddress;  
    void SetAddress(LPCTSTR lpsz) { m_strAddress = lpsz; }  
};

STL 클래스

class foo  
{  
private:  
    int age_;  
    std::string address_;  
public:  
    int age() const { return age_; }  
    void age(int a) { age_ = a; }  
    std::string address() const { return address_; }  
    void address(const std::string& str) { address_ = str; }  
};

지금 보일 수 있는 조금 이상-두 개의 서로 다른 스타일을-하지만 그것이 나를 위해,그리고 많이 쓰 MFC 코드를 사용하지 않는 같은 스타일로 MFC 자체 보인다.

나는 접두사원 변수와 함께'그리고 매개변수(기능)과'p'.그래서 코드는 다음과 같다:

class SomeClass {
    private int mCount;
    ...
    private void SomeFunction(string pVarName) {...}
}

내가 찾는 것이 신속하게 알려주 기본적인 범위의 어떤 변수가-없는 경우 접두어,그것은 로컬입니다.또한,을 읽을 때는 필요하지 않은 기능을 생각하는 것에 대해 전달되고 무엇이 그냥 지역 변수입니다.

그것은 정말 언어에 따라 달라집니다.나는 C++남자와 붙으로 모든 것을 밑줄은 까다로운 방법입니다.언어 보는 시작과 함께 밑줄에서 구현하기 위해 어떤 경우(에 따라 범위)입니다.거기에는 또한 특별한 처리를 위한 두 배 밑줄,또는 밑줄은 다음과 같은 자본 문자입니다.그래서 내가 말하지는 혼잡하고 단순히 일부를 선택하는 다른 접두사입니다.'m'ok IMO.'m_'은 많은 비트이지만,어려운 것도 아니다.문의 맛은 정말.

하지만 조심한 _leadingUnderscores.당신을 놀라게 될 것이 얼마나 많은 컴파일러 및 라이브러리의 내부는 그래서 명명,그리고 거의 확실히 방을 위한 사고와 mixup 하지 않은 경우 매우 신중해야합니다.식당들이 많이 있습니다.

대부분의 시간을,내가 사용하는 파이썬.Python 를 사용해야 합 자체입니다.푸에 액세스하기 위해 특성 foo 인스턴스의 현재 클래스입니다.는 방법으로,문제의 혼란 지역 변수,매개변수의 인스턴스에서 작동합니다.
일반적으로,이 접근 방식도,내가 싫어하는 강제되고 그것을 할 수 있습니다.따라서,나는 이상적인 방법을 하면 별은 하지 않고 형식을 사용하여 사용의 특성에 액세스 또는 이에 자기를 가져오기 위해 구성원 변수입니다.는 방법으로,없을 혼란 이름과 메타 데이터입니다.

언어 지원 키워드,다음 사용하지 않는 접두사를 대신 사용하고 키워드를 사용합니다.

다른 방법 이름 지정 규칙:

모든 멤버가 변수 이름은 평소와 같이지 않고,어떤 접두사(또는'이다.'는 그것은 평소에 그렇게 프로젝트)

하지만 그들은 쉽게 차별화된 지역 변수하기 때문에서 프로젝트,해당 지역 변수는 항상 이름:

  • a가:중 하나를 나타냅 개체입니다.
  • ManyThings:목록 개체입니다.
  • 상태 또는 가:부울 상태에 있습니다.

어떤 변수하지 않을 시작으로'a','일'또는'은/는'는 구성원이 변수입니다.

이 VB.NET 대소문자를 구분하지 않,나는 접두어 내 회원 변수는 밑줄로하고 낙타는 경우 나머지의 이름입니다.나는 투자하실 이름입니다.

Dim _valueName As Integer

Public Property ValueName() As Integer

내가 가진 사람들이 사용하지 않는 접두어.

Ide 너무 좋은 요즘,그것을 쉽게 찾을 수 있에 대한 정보를 변 한 눈에서 구문을 색칠하고,마우스 도구 설명하고 쉽게 탐색의 정의입니다.

이에 당신이 무엇을 얻을 수 있습에서의 컨텍스트의 변수와 이름규칙에 대하여(예:lowerCamelCase 에 대한 지역 변수하고 프라이빗 필드는,UpperCamelCase 속성에 대한 및 방법 등)와 같은"hasXXXX"및"isXX 에 대해"부울.

나는 사용하지 않은 접두사를 몇 년 동안,그러나 나는 사용"이다."접두어 몬스터 하지만 나는 절대적으로 필요하지 않는(감사합니다,---끝---이력서).

나는 이상한 사람과 나 접두사원 변수 이니셜 클래스에서 이름(낙타-케이스).

TGpHttpRequest = class(TOmniWorker)
strict private
  hrHttpClient  : THttpCli;
  hrPageContents: string;
  hrPassword    : string;
  hrPostData    : string;

대부분의 사람들은 델파이 그냥 사용 F.

TGpHttpRequest = class(TOmniWorker)
strict private
  FHttpClient  : THttpCli;
  FPageContents: string;
  FPassword    : string;
  FPostData    : string;

단일 _ 으로만 사용한 시각적 표시.(C#)

  • 하는 데 도움이 그룹 멤버와 함께 컴포넌트입니다.
  • 쉽게 장소는 구성원 변수를 읽을 때 코드입니다.
  • 하기 어렵게 숨기기 구성원이 변수로는 로컬의 정의입니다.

_this.

내가 사용하는 _this. 기 때문입 (4 캐릭터 이하)및 그것의 좋은 지표의 구성원 변수입니다.게다가,이를 사용하여 접두사 당신은 피할 수 있는 명명 충돌이 발생합니다.예제:

public class Person {
  private String _name;

  public Person(String name) {
    _name = name;
  }
}

와 비교 this:

public class Person {
  private String name;

  public Person(String name) {
    this.name = name;
  }
}

내가 찾는 첫 번째 예에 짧고 더 많은 분명하다.

그것은 좀 어떻게 했느냐에 따라 달라집 언어 작업 시에는.

C#에서 참조할 수 있는 회원을 사용하여'이'접두어,예를 들어,'이다.val'의미하는,접두사가 필요합니다.VB 비슷한 기능으로'나'입니다.

에서 언어가 내장된 표기를 나타내는 회원의 접근을 나는 볼 수 없는 지점에는 접두어로 사용.다른 언어에서,나는 그것을 사용하는 의미가 무엇이든 일반적으로 허용된 규칙에 대한 교육 과정을 제공합니다.

참고는 하나의 혜택을 사용하여 표기하는 사용할 수도 있습니다 그것은에 액세스할 때 특성 및 방법에는 클래스를 손상시키지 않고 이름 지정 규칙을 사람들(특히 중요에 액세스할 때 아닌 개인 멤버).에 대한 주요 이유를 사용하여 어떤 종류의 표시로서는 플래그를 일으키는 가능한 부작용 클래스에서,그래서 그것은 좋은 생각이 그것을 사용하는 경우,다른 회원들지 여부에 관계 없이 그들이 필/부동산/법/등이 있습니다.

내가 사용하는 낙타의 케이스와 밑줄처럼 많은 여기에.내가 사용하는 밑줄기 때문에 나는 C#고 했는데 사용을 피하는'이'키워드가 내 생성자입니다.나는 낙타의 케이스는 방법 범위의 개 그래서 밑줄 생각나는 범위 내 작업에 이 시간입니다.그렇지 않으면 내가 문제라고 생각하지 않는 한 당신이하지 않을 추가하려고 불필요한 정보는 것은 이미에 분명하다 코드입니다.

내가 사용하는 데 사용되는 m_perfix 에서는 C++지만 C#세요 그냥을 사용하여 낙타 케이스에 대한 필드와 파스칼의 경우에 대한 제공합니다.

private int fooBar;
public int FooBar
{
  get { return fooBar; }
  set { fooBar = value; }
}

나는 다음과 같 m_ 하지만 오랫동안으로 컨벤션에서 사용되는 코드 기반을 사용되 나는 멋진다.

귀하의 mul_ 예으로 향하고 샤 시모의 애플 리케이션 헝가리 notation.

내가 선호하는 물건을 유지하는 간단하고 그 이유는 내가 같이 사용하 m_ 으로 접두사입니다.

이렇게 훨씬 쉽게 볼 수 있는 이동을 보이 원래 선언입니다.

내가 사용하는 경향이 있 m_ 에서는 C++,하지만 마음에 그것을 떠나 멀리에서 Java 또는 C#.에 따라 코딩 표준입니다.레거시 코드에 대한 혼합물의 밑줄 및 m_ 나는 코드를 리팩터링을 하나의 표준(받게 합리적인 코드 크기)

내가 사용하는@.

:D j/k-그러나는 경우가 종류의 언어에 따라 다릅니다.이 있는 경우 필요한 것입/세터,나는 일반적으로 넣_앞에서 개인 멤버변수와 get/set 과 동일한 이름 없이_.그렇지 않으면 나는 일반적으로 사용하지 마십시오.

내 자신의 프로젝트에 사용_로 postfix(마틴 뉴욕이 주목 위_접두사로는 reserver 에 의해 C/C++표준에 대한 컴파일러 구현이)나는 일할 때에 Symbian 프로젝트.

자바에서,하나의 일반적인 협약은 서문으로 멤버 변수를"내"andUseCamelCaseForTheRestOfTheVariablename.

없음의 경우에 필요하지 않습니다,단 하나 밑줄지 않습니다.에 적용됩니다.

정말 필요한 경우를 접두사원 변수,나는 확실히아보세요 m_ 단 밑줄.내가 찾는 밑줄에 자신의 가독성을 줄일 수,그리고 혼동 될 수 있는 C++예약어가 있습니다.

그러나 내가 의심하는 구성원 변수에 필요한 모든 특별한 개념입니다.심지어는 무시 IDE 도움,그것은 분명하지 않는 이유가 있는 것 사이에 혼란 무엇이고 어떤 구성원 변수입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top