VB.Net属性 – 公共获取,私人设置
我想我会问…但是有没有办法让获取属性公开的一部分,但保持私人?
否则,我想我需要两个属性或一个属性和一个方法,只是认为这将是更清洁。
是的,非常简单:
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
我不确定Visual Studio的最低版本是什么,但在VS2015中可以使用
Public ReadOnly Property Name As String
它是只读的公开访问,但可以私人修改使用_Name
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 2010function,但如果你使用两个,你不需要声明setter / mutator代码块的值参数:
Private _name As String Public Property Name() As String Get Return _name End Get Private Set _name = value End Set End Property
我发现标记property
只是比上面的答案更清洁。 我相信vb14是必需的。
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
如果您使用的是VS2010或更高版本,则比这更容易
Public Property Name as String
你得到的私人财产和获取/设置完全免费的!
看到这个博客文章: 斯科特顾的博客