自动实现的ReadOnly属性必须提供'Get'

时间:2017-02-27 16:21:46

标签: vb.net properties

为什么编译器会抱怨以下行

Public ReadOnly Property Name As String

  

错误BC30126:'ReadOnly'属性必须提供'Get'

我认为VB 14支持自动实现的只读属性?或者我通过使用.NET Framework 4.0.30319与Microsoft(R)Visual Basic编译器版本14.6.1586提供的vbc.exe从命令行进行编译来解决此问题?

我是否需要使用Visual Studio来支持它?

编辑:一个具体的例子 - 这不应该起作用吗?

Class A
    Sub New(name As String)
        Me.Name = name
    End Sub
    Public ReadOnly Property Name As String
End Class

以上示例确实应该工作,但在我的情况下不行。对于这个有效的人可以确认他的Compilerversion与我的不同吗?

1 个答案:

答案 0 :(得分:1)

AutoProperties 必须初始化。

你必须做这样的事情:

Public ReadOnly Property Name As String = "Something"

或删除AutoProperty:

Public ReadOnly Property Name As String
    Get
        Return "FixedName"
    End Get
End Property

或者

Private m_Name as String = ""
Public ReadOnly Property Name As String
    Get
        Return m_Name
    End Get
End Property