代码之家  ›  专栏  ›  技术社区  ›  Oorang

直接访问数据成员是一种不好的做法吗?

  •  3
  • Oorang  · 技术社区  · 15 年前

    我记得一位教授告诉我以下是不好的做法。但它使代码的单步执行变得不那么乏味。我只是说说利弊:

    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 
    
    3 回复  |  直到 15 年前
        1
  •  4
  •   Ed Swangren    15 年前

    如果您设置了一个属性来访问私有成员变量“isEmpty”,那么我会在类本身内部使用这个属性,除非有充分的理由不这样做。

        2
  •  3
  •   n8wrl    15 年前

    为了补充Ed的回答,有些IDE允许您设置一个标志,表示您不希望像这样深入研究属性getter/setter。我不知道VB,但C/VS2008可以做到这一点。因此,在决定做什么是正确的事情时,这就不需要考虑“逐步通过代码”的便利性。

        3
  •  0
  •   Dan Williams    15 年前

    不过,以后再加也没什么大不了的。我对这两种方法都不会太虔诚。