我目前正在为我的新工作学习vb.net,而且我对公共领域的感情很复杂。我看到很多关于它们的论点都在破坏封装。在python中,通常的做法是保持简单并在它们足够时使用字段。如果我们想稍后添加逻辑,我们只需将它们重构为属性,而不会破坏客户端代码的任何内容。
在我正在使用的代码库中,我看到包含十几个属性的大型类,如:
Private __GetDescriptionMode As Boolean
<DefaultValue(False)> _
Public Property GetDescriptionMode() As Boolean
Get
GetDescriptionMode = __GetDescriptionMode
End Get
Set(ByVal Value As Boolean)
__GetDescriptionMode = Value
End Set
End Property
这10行代码内部价值不大。在我的视觉工作室窗口中,我几乎看不到其中的三个。所以我有两个问题:
修改 澄清我的第一个问题:如果我将字段更改为一个简单的属性,我是否有机会破坏客户端代码?
答案 0 :(得分:3)
创建属性而不是字段是个好主意。
Vb.Net小组从此blog post了解更多内容,或者从Jon Skeet了解有关C#中相同问题的内容
在Visual Basic 2010及更高版本中,使用自动属性
Public Property GetDescriptionMode As Boolean
答案 1 :(得分:2)
恕我直言,它始终值得设置属性:
Region
值得一提的是,从VS2010开始,这个问题在很大程度上随着自动属性的出现而消失。以上内容将浓缩为:
Public Property GetDescriptionMode As Boolean