2010-07-26 4 views
3

나는 다음과 같은 나쁜 습관이 교수에게 들려왔다. 그러나 이것은 코드를 훨씬 덜 지루한 단계로 나아 간다. 난 그냥 장점과 단점에 대한 의견 solicting 해요 : 당신이 개인 멤버 변수 "IsEmpty 함수"에 접근 속성을 설정 한 경우 예,하지 않는 한 클래스 자체의 내부 속성을 사용하는 것보다,데이터 멤버에 직접 액세스하는 것은 나쁜 습관입니까?

Friend Class MyClass 
Private isEmpty As Boolean 
Public Property IsEmpty() As Boolean 
    Get 
    Return isEmpty 
    End Get 
    Set(ByVal Value As Integer) 
    isEmpty = value 
    End Set 
End Property 
Public Sub MyMethod() 
    ''//Is this more correct: 
    If Me.IsEmpty() Then 
    ''//Do something. 
    End If 
    ''//Is this bad practice?: 
    If isEmpty Then 
    ''//Do something. 
    End If 
End Sub 
End Class 
+0

VB는 대/소문자를 구분하지 않으므로 속성과 대소 문자를 구분해서는 안됩니다. 일반적인 아이디어는 필드 앞에 밑줄을 붙이는 것입니다. –

+0

@Steven Sudit, VB6/VBA 규칙이 있습니까? – Oorang

+0

VB 나 C#뿐만 아니라 .NET의 경우 일반적인 밑줄 규칙이 있습니다. –

답변

4

이 그렇게하지 않는 이유는 충분합니다.

나중 시점에 속성이 설정되었을 때 (또는 검색되었을 때) 더 많은 작업을 수행해야하는 이유는 다음과 같은 경우에 개인 구성원 변수에 대한 모든 참조를 찾아야하기 때문입니다. 클래스에 추가하고 속성에 액세스하도록 변경하십시오.

3

Ed의 답변에 추가하기 위해 일부 IDE에서는 속성 가져 오기 도구/설정 도구를 사용하지 않으려는 플래그를 설정할 수 있습니다. 나는 VB에 대해 모르지만 C#/VS2008이 이것을 할 것입니다. 그래서 옳은 일을 결정할 때 '코드를 통해 스테핑 (stepping through the code)'이라는 편의를 얻습니다.

+0

예, VB에서도 속성을 추가 할 수 있습니다. –

0

정말 개발자로서의 본능과 경험을 얻습니다. 당신이 슈퍼 긍정이라면 그 부동산에 대해 어떤 처리도 할 필요가 없을 것입니다. 그렇지 않으면 래퍼를 작성, 정말 상처가되지 않습니다.

나중에 추가하는 것은 결코 큰 일이 아닙니다. 나는 어느 쪽의 방법에 대해서도 너무 종교적이지 않을 것이다.

+3

나는 네가하는 말을 이해하고있다. 단, 내 경험상 내 경험에 "슈퍼 긍지는 결코 없을거야 ..."라고하는 것이 없다. – n8wrl

+0

데이터베이스 측면에서 대리 키와 자연 키 토론을 연상케한다. 흠 ... 이제 내 대답을 재검토하고있다 :) –

+1

댄, 재산을 사용하는 데 비용이 없습니다. –

관련 문제