개인 변수와 동일한 규칙을 사용하여 폼의 컨트롤 이름을 지정합니까?

StackOverflow https://stackoverflow.com/questions/9433

문제

어떤 이유로 나는 이것이 완료되는 것을 결코 보지 못했습니다.안되는 이유가 있나요?예를 들어 저는 개인 변수로 _blah를 좋아하고 적어도 Windows Forms 컨트롤에서는 기본적으로 개인 멤버 변수이지만 그런 식으로 명명된 것을 본 기억이 없습니다.멤버 함수 내의 지역 변수에 제어 개체를 생성/저장하는 경우 시각적으로 구별하는 것이 특히 유용합니다.

도움이 되었습니까?

해결책

이는 일부에게는 반직관적일 수 있지만 우리는 UI 요소에 대해 무서운 헝가리 표기법을 사용합니다.

논리는 간단합니다.특정 데이터 개체에 대해 두 개 이상의 컨트롤이 연결될 수 있습니다.예를 들어 텍스트 상자에 생년월일을 나타내는 컨트롤이 있으면 다음과 같습니다.

  • 텍스트 상자
  • 텍스트 상자가 생년월일임을 나타내는 레이블
  • 날짜를 선택할 수 있는 달력 컨트롤

이를 위해 레이블에는 lblBirthDate, 텍스트 상자에는 txtBirthDate, 달력 컨트롤에는 calBirthDate가 있습니다.

그러나 나는 다른 사람들이 이것을 어떻게 하는지 듣고 싶습니다.:)

다른 팁

헝가리어 표기법이든 아니든, 사람들이 m_ 또는 _ 또는 표준 개인 멤버 변수에 사용하는 무엇이든 앞에 붙이는 것이 더 궁금합니다.

저는 개인적으로 개인 객체 앞에 _를 붙입니다.

양식 컨트롤에는 항상 유형이라는 접두사가 붙습니다. 오직 내가 이렇게 하는 이유는 인텔리센스 때문이다.큰 양식을 사용하면 입력만 하면 "라벨 값을 얻는" 것이 더 쉬워집니다. lbl 목록에서 선택하세요 ^_^ 또한 Jon Limjap이 말한 논리.

Microsoft의 .NET 코딩 지침이 다시 적용되지만 확인하십시오. 여기.

나에게 있어 개인 멤버 앞에 밑줄을 추가하는 명명 규칙의 큰 이점은 Intellisense와 관련이 있습니다.밑줄은 알파벳 문자보다 앞에 있으므로 Ctrl-Space를 눌러 Intellisense를 불러오면 맨 위에 _privateMembers가 모두 표시됩니다.

그러나 컨트롤은 이름 지정에 관한 한 다른 이야기입니다.범위가 가정되고 유형(예: txtMyGroovyTextbox)을 나타내기 위해 몇 글자를 앞에 추가하는 것이 같은 이유로 더 의미가 있다고 생각합니다.컨트롤은 Intellisense에서 유형별로 그룹화됩니다.

하지만 직장에서는 VB를 사용하므로 mPrivateMember를 사용합니다.m은 모듈을 뜻하는 것 같아요.

나는 VB를 통해 왔으며 컨트롤에 대한 컨트롤 유형 접두사를 유지했습니다.내 개인 회원은 소문자 낙타 문자(firstLetterLowercase)를 사용하고 공개 회원은 파스칼/대문자(FirstLetterUppercase)를 사용합니다.

식별자/구성원/로컬이 너무 많아서 이름을 기억/추측할 확률이 90%인 경우 더 많은 추상화가 필요할 수 있습니다.

나는 저장 유형 접두사가 유용하거나 필요하다고 확신한 적이 없습니다.그러나 나는 내가 사용하는 모든 코드의 스타일을 따르는 강한 습관을 갖고 있습니다.

나는 그렇지 않지만 당신의 논리에 감사드립니다.대부분의 사람들이 그렇게 하지 않는 이유는 디자인 타임에 속성 창에서 밑줄이 보기 흉하게 보이기 때문이라고 생각합니다.또한 이와 같이 도킹된 창에서 프리미엄이 되는 수평 공간의 추가 특성을 차지하게 됩니다.

헝가리 표기법이든 아니든, 사람들이 M_ 또는 _ 또는 표준 개인 회원 변수에 사용하는 모든 것을 Prepend하는지 궁금합니다.

루크,

나는 클래스 라이브러리 객체에 _ 접두사를 사용합니다.앞서 언급한 이유로 나는 UI에만 헝가리어 표기법을 사용합니다.

나는 변수 이름에 밑줄을 절대 사용하지 않습니다.언어에서 요구하지 않는 한 알파(때때로 영숫자) 문자 이외의 문자는 과도하다는 것을 발견했습니다.

저는 UI 구성요소(tbTextbox, lblLabel 등)에 대한 "헝가리어" 표기법이 혼합된 대문자/소문자 캠프("제목"은 비공개, "제목"은 공개)에 있는데, Visual Case-Insensitive-Basic 개발자 팀 :-)

나는 밑줄이 보기 흉해 보이기 때문에 좋아하지 않지만, 장점(또는 요점에 따라 단점)이 있다는 것을 인정해야 합니다.디버거에서는 _가 알파벳 맨 위에 있으므로 모든 개인 변수가 맨 위에 표시됩니다.하지만 다시 말하지만, 나는 개인/공용 쌍이 함께 있는 것을 선호합니다. 왜냐하면 개인 및 공용 속성이 서로 옆에 있는 것을 볼 때 getter/setter 논리를 더 쉽게 디버깅할 수 있기 때문입니다.

나는 그들이 나타내는 데이터베이스 열의 이름을 적습니다.

저는 멤버 변수에 m_을 사용하지만, 메소드 매개변수와 지역 변수에 사용하는 것처럼 lowerCamelCase를 사용하고 싶은 유혹이 점점 커지고 있습니다.공개 내용은 UpperCamelCase에 있습니다.

이는 .NET 커뮤니티 전체에서 어느 정도 허용되는 규칙인 것 같습니다.

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