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 :(得分:4)
如果你已经设置了一个属性来访问私有成员变量“isEmpty”,那么我会使用类本身内部的属性,除非有一个很好的理由不这样做。
原因是您可能在以后的某个时间点需要在设置属性时(或者可能在检索时)执行更多工作,然后您可能必须在您的属性中找到对私有成员变量的所有引用类并更改它们以访问该属性。
答案 1 :(得分:3)
要添加到Ed的答案,一些IDE允许您设置一个标记,表示您不想潜入这样的属性getter / setter。我不知道VB,但C#/ VS2008会这样做。因此,在决定什么是正确的事情时,需要通过“代码”方便的步骤。
答案 2 :(得分:0)
它确实降低了它作为开发人员的本能和经验。如果你是超级肯定的,你将永远不需要对该属性进行任何处理,然后我说直接访问它。否则写下包装器,它并没有真正受到伤害。
尽管如此,以后添加它也从未如此重要。我对这两种方法都不会过于虔诚。