VB.Net属性 - 公共获取,私有集

时间:2009-09-22 21:19:12

标签: vb.net properties scope

我想我会问......但是有没有办法让公共部分属性可以公开,但是保持该组为私有?

否则我认为我需要两个属性或属性和方法,只是认为这样会更干净。

6 个答案:

答案 0 :(得分:108)

是的,很直接:

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

答案 1 :(得分:18)

我不确定Visual Studio所需的最低版本是什么,但在VS2015中你可以使用

Public ReadOnly Property Name As String

它是只读的公共访问权限,但可以使用_Name

进行私密修改

答案 2 :(得分:7)

    Public Property Name() As String
        Get
            Return _name
        End Get
        Private Set(ByVal value As String)
            _name = value
        End Set
   End Property

答案 3 :(得分:6)

另外一个值得一提的调整:我不确定这是否是.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

答案 4 :(得分:4)

我发现将property标记为readonly比上述答案清晰。我相信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

答案 5 :(得分:-4)

如果您使用VS2010或更高版本,则比

更容易
Public Property Name as String

您可以免费获得私人财产和获取/设置!

请参阅此博文:Scott Gu's Blog