VB.net自动属性 ​​- 只读?

时间:2011-01-31 14:37:56

标签: vb.net properties


是否有可能(以及如何)在VB 2010中创建只读自动属性?

Public Class Foo  
  Public Property Value As Integer  
  Public Sub New()  
      _Value = 123
  End Sub  
End Class  

问题是用户可以写入该属性。 感谢名单

4 个答案:

答案 0 :(得分:7)

现在VB14(Visual Studio 2015及更高版本)支持它:

def prime_counter(n):
    result = [2]
    for i in range(3, sys.maxsize, 2):
        if is_prime(i):
            result.append(i)
            if len(result) == n: return result

请参阅https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-VB-14#read-only-auto-properties

在早期版本中,您需要创建一个支持字段。

答案 1 :(得分:4)

不,VB.Net不支持只读自动属性。请参阅此MS Connect问题,了解其背后的原因(特别是Jonathan Aneja的评论)。

答案 2 :(得分:2)

不,it isn't possible。您必须创建一个明确的支持字段。

答案 3 :(得分:0)

thinkthing,

您可以创建一个代码段来添加通用属性。

http://msdn.microsoft.com/en-us/library/ms165392(v=vs.90).aspx

请注意,visual studio已经改变了我们构建属性的基本方式,使用get set,现在只需要一行就可以理解get set。如果您确实需要内置逻辑,则可以构建完整的getter和setter。我在这里推荐你: http://msdn.microsoft.com/en-us/library/dd293589.aspx

在这里,关于类似讨论的SO讨论: Using snippets to make Class properties in VB.net. prop only gives "property () as " Whats up?