我想我会问... 但是有没有一种方法可以让 Get 属性的一部分作为公共属性可用,但是保持该集作为私有属性?
否则,我认为我需要两个属性或一个属性和一个方法,只是认为这将是干净的。
是的,非常直接:
Private _name As String Public Property Name() As String Get Return _name End Get Private Set(ByVal value As String) _name = value End Set End Property
Public Property Name() As String Get Return _name End Get Private Set(ByVal value As String) _name = value End Set End Property
还有一个值得一提的调整: 我不确定这是否是一个。NET 4.0或 Visual Studio 2010特性,但是如果你同时使用这两个特性,你不需要为 setter/mutator 代码块声明 价值参数:
Private _name As String Public Property Name() As String Get Return _name End Get Private Set _name = value End Set End Property
如果您正在使用 VS2010或更高版本,它甚至比这更容易
Public Property Name as String
您可以完全免费获得私有属性和 Get/Set!
看看这篇博文: 斯科特 · 古的博客
我发现标记的 property为 readonly比上述答案干净。我相信 vb14是必需的。
property
readonly
Private _Name As String Public ReadOnly Property Name() As String Get Return _Name End Get End Property
这可以浓缩为
Public ReadOnly Property Name As String
Https://msdn.microsoft.com/en-us/library/dd293589.aspx?f=255&mspperror=-2147217396
我不确定 VisualStudio 的最低要求版本是什么,但是在 VS2015中您可以使用
它对于公共访问是只读的,但是可以使用 _Name私人修改
_Name