2010-06-09 4 views
5

저는 일반적으로 변수 이름 지정, 코드 형식 지정과 같은 문제에 대해 주관적인 주장에 참여하는 사람이 아닙니다. 그래서 여기에서 논쟁을 시작할 의사가 없습니다.VB.NET에서 멤버 변수 이름은 어떻게 지정합니까?

하지이 멤버에 대한 변수 (_, M_, S_ 등 접두어를 사용하십니까 :

난 그냥 하지 접두사 멤버 변수 이름을 권장 this (구) 블로그 게시물을 가로 질러왔다). 로컬 변수와 멤버 변수를 구별하려면 "this"를 사용해야합니다. C#과 "Me"에서. VB.NET에서.

C#의 경우 멤버 변수가 더 낮을 수 있으며 public 속성/메서드는 PascalCase가 될 수 있습니다. 하지만 VB.NET은 대소 문자를 구분하지 않으므로 소문자의 첫 글자를 제외하고는 public 멤버와 동일한 이름을 private 멤버에게 부여 할 수 없습니다.

저는 일반적으로 멤버 변수 앞에 밑줄을 붙였습니다. 그러나 저는 관용적이지 않다고 들었습니다.

그래서 정말 난 그냥 궁금 해서요 : 어떻게 VB.NET에 멤버 변수의 이름을합니까? 그리고 "표준"방법이 있습니까?

"올바른"방법이 있거나 특히 내 스타일을 바꾸고 싶다고 생각하기 때문에 묻지 않습니다. 다른 사람들에게 "틀렸다고"말하고 싶은 욕구가 있기 때문이 아닙니다. 내가 말했듯이, 나는 단지 호기심이 많다.

+0

가능한 중복 http://stackoverflow.com/questions/668157/microsoft-vb-net-naming-convention) –

+0

@ ho1 : 명명 규칙에 대해 이야기하는 사람을 만날 때마다 기본적으로 개인 회원을 제외하고 이름을 지정할 수있는 모든 가능한 항목을 논의합니다. 나는 사람들이 개인 멤버 변수를 어떻게 구체적으로 명명하는지 궁금 할뿐입니다. –

+2

"나는 사람들이 개인 구성원 변수를 구체적으로 어떻게 명명하는지 궁금합니다." 좀 무례하니?;) –

답변

4

그것은 개인적인 취향의 ... 짧고 요점입니다. C#에서도 널리 사용되는 컨벤션은 없다고 생각합니다.

Jeff Prosise은 [C#에서] 밑줄 일반적으로 접두사 개인 필드 ...이 협약은 .NET 프레임 워크에 꽤 많이 사용되는 I 개인 취향의 문제로

를 말한다하지만 사용되지 않습니다 전역.

NET Framework Design Guidelines 2 판 페이지 73

Jeffrey Richter

내가 내 모든 필드는 비공개 말한다 나는 "M_"를 선택하고 [C#에서] "S_"

내 정적 필드 내 인스턴스 필드를 앞에

에서. NET Framework Design Guidelines 2 판 47 페이지 앤서니 무어 (BCL team)도 "M_"와 "S_"을 사용하여 생각하는 가치가 고려 페이지는 48

[마이크로 소프트 VB.NET 명명 규칙 (의
+1

나는이 대답을 받아 들일 것이다. 이 녀석들에게 충분하다면, 나에게 충분하다. (또는 다른 방법으로 말하자면, *이 녀석들이 전체 변수를 접두사로 사용하지 않는다면, 나도 그렇다). –

3

나는 너와 같이하고있다.

Private _myVar as Object 

Public Property MyVar() As Object 
    Get 
     Return Me._myVar 
    End Get 
    Set(ByVal value As Object) 
     Me._myVar = value 
    End Set 
End Property 

그리고

Public Sub New(myVar as object) 
    Me._myVar = myVar 
End Sub 

생성자

에서

는하지만 그건 취향의 문제라고 생각.

+0

다양한 시도를 한 후에 개인 회원에게 '밑줄'접두사를 사용하기로 결정했습니다. – Drake

+0

오래된 게시물에 대해 질문하는 것이 유감 스럽지만 저와 _ * me ._ *가 과도하지 않은가? 나는 그것이 내 이해 (또는 부족)하지만 나는 이것이 단지 환경 ​​설정이라고 생각하고 나와 _와 함께 프로그래밍상의 장점/단점을 제공하지 않는다고 생각 하는가? – Dave

+0

@DaveRook : 만약 당신이'Me'를 의미한다면, imho는 충분히 명확 할 수없고 두 글자는 그다지 들지 않습니다. 'Me.MyVar = myVar' 속성을 사용할 수도 있습니다. 'Me'는 또한 무한 루프를 방지합니다. –

2

시간 전 접두사는 공용 속성에 대한 개인용 백업 저장소와 함께 사용합니다. 이 경우 이름은 다른 경우와 동일하며 대다수의 경우 접두어가 붙은 이름을 참조 할 장소는 관련 속성 안에 있습니다. 마지막으로 VB.Net에서 자동 구현 된 속성을 사용할 수있을 때도 그렇게 할 필요가 없습니다.

자동 구현 된 속성을 사용할 수없는 경우 C#에서도이 작업을 수행합니다. 대/소문자 만 다른 이름을 사용하는 것보다 _ 접두사를 사용하는 것이 좋습니다.

+0

http://weblogs.asp.net/scottgu/archive/2010/04/05/automatic-properties-collection-initializers-and-implicit-line-continuation-support-with-vb-2010.aspx –

+0

@Justin - 나는 내 대답을 조금 바꿨다. 나는 VS2010을 가지고 있지만 아직 vs2008로 컴파일해야하는 많은 코드 작업을하기 때문에 새로운 기능을 사용할 수 없습니다. 결과는 내가 거기에 있다는 것을 잊지 않고 있다는 것입니다. –

+0

물론, 나는 '고통'을 안다. 급락을 가져 갔고, 그것이 멋있는 시간을 절약한다고 말해야합니다. –

3

저는 회원 변수에 개인적으로 m_를 사용합니다.

VS 2010의 자동 속성이 있지만 최근에 작성한 새 코드가 필요하지는 않습니다.

1

많은 MS 코드가 개인 선언에 m_ *를 사용하는 것으로 보이지만 나는 개인을 저장하고 private 멤버에게는 _name을 사용합니다. 내 규칙 :

  • 개인 회원 밑줄
  • 공공 멤버 (메서드 및 속성)을 덧붙일하는이 PascalCase 있습니다.
  • 매개 변수는 낙타입니다.

저는 C#으로 작업하기 때문에 대소 문자가 다른 속성과 동일한 이름의 매개 변수 이름을 사용하는 데 문제가 없습니다. VB에서 작동하지 않습니다.

+0

물론 매개 변수는 VB의 속성과 같은 이름을 가질 수 있습니다. 매개 변수 대신 속성에 액세스하려면 'Me.PropertyName' 클래스를 한정하십시오. –

3

밑줄이있는 줄/이름을 시작하는 것이 좋지 않습니다. 줄을 추가 영역으로 들여 쓰는 것처럼 보이기 때문입니다. 코드가 불균형하게 만듭니다. 또한 외로운 밑줄은 내 취향에 너무 눈에 띄지 않습니다. 식별자를 명확하게 구별하는 것을 선호합니다.

따라서 접미사 밑줄 (예 : example_)과 접두어 m_ 사이를 주기적으로 순환합니다. 나는 어느 누구도 좋아하지 않기 때문에 내가 선호하는 사람을 결정할 수 없다. 그러나 접두사 밑줄에 대한 인수는 부분적으로 접미사 밑줄에도 적용됩니다. 당신이 언급 한대로

는하지만, 구별 일부 종류의 필요입니다.

다른 곳에서 언급했듯이 C#에서도 대소 문자 구분을 사용하여 매우 나쁜 경험을했습니다. 이름을 혼동하여 속성 대신 개인 변수에 쓰기가 너무 쉽습니다. 이 속성은 속성이 설정 값을 검사하거나 변환하는 경우 중요합니다.

그런 이유로 저는 C#에서 어떤 종류의 접두사를 사용하는 것을 선호합니다.

2

_ (밑줄)을 사용하여 변수 이름의 접두어를 붙입니다. 일부 차이를 가지고에 대한 폭 넓은 지원이있다하더라도 그것은

Private _ID as integer 
Public Property ID() As Integer 
    Get 
     Return _ID 
    End Get 
    Set(ByVal value As Integer) 
     _ID = value 
    End Set 
End Property 
관련 문제