15

在 C# 中:

public string Property { get; private set; }

在VB中?

请投票或/和分享您的想法!

4

3 回答 3

9

像这样:

Private Thingy As Integer
Property Thing() As Integer
    Get
        Return Thingy
    End Get
    Private Set(ByVal value As Integer)
        Thingy = value
    End Set
End Property

VB10中的自动属性

Property PartNo As Integer = 44302

但是即使在 VB10 中也无法在 vb 中完成私有集,请参见此处:

来自 MSDN(如约翰所说):

需要标准语法的属性定义:

  • 为 Get 和 Set 过程指定不同的可访问性。例如,您可能希望将 Set 过程设为 Private,将 Get 过程设为 Public。
于 2009-06-09T09:14:42.430 回答
5

我不认为这是可能的(还)。

请参阅MSDN 上的此链接
上面的文章甚至链接到另一篇关于混合访问级别的文章。

我在 Microsoft Connect 上找到了这个,所以他们正在考虑它(如果它适用于 VS2010,那是另一个问题)。

于 2009-06-09T09:14:58.203 回答
5

根据这篇 MSDN 文章,您不能:

自动实现的属性很方便并且支持许多编程场景。但是,在某些情况下,您不能使用自动实现的属性,而必须使用标准或扩展的属性语法。

如果要执行以下任一操作,则必须使用扩展的属性定义语法:

[...]

  • 为 Get 和 Set 过程指定不同的可访问性。例如,您可能希望将 Set 过程设为 Private,将 Get 过程设为 Public。
于 2009-06-09T09:16:45.733 回答