【问题标题】:VB Auto Implemented Property not compilingVB自动实现属性未编译
【发布时间】:2020-07-28 16:39:23
【问题描述】:

在对 VB 自动属性进行了一些令人沮丧的研究之后。我决定不理他们。所以我有这个代码。

Public Class Categoria
    Private _nome As String
    Public ReadOnly Property Nome As String
        Get
            Return _nome
        End Get
    End Property

    Public Sub New(nome As String)
        Me._nome = nome
    End Sub
End Class

但 Visual Studio 很有帮助,建议使用自动属性。我同意了,我之前什至尝试过,但他以 单击此处的形式提供帮助,我会这样做。所以我做了。而且他执行的代码与我之前没有任何运气的代码完全相同,逐个字符。

Public Class Categoria
    Public ReadOnly Property Nome As String

    Public Sub New(nome As String)
        Me.Nome = nome
    End Sub
End Class

有人能解释一下为什么最后一段代码无法使用error BC30126: 'ReadOnly' property must provide a 'Get'. 编译吗?

显然VS缺少和我一样的东西,所以我不再觉得那么愚蠢了。

【问题讨论】:

  • 您的代码看起来不错,可以在我的 Visual Studio 和 in dotnetfiddle 中编译。您是否可能以某种方式(我不知道该怎么做)使用旧版本的 VB.NET 编译器?
  • @Heinzi 谢谢。我正在使用几天前安装的 VS 2019。问题显然不在我发布的代码中。这正是我必须展示的。其他一些自动属性在不同的地方工作。我只是想不通为什么这个不起作用。
  • 啊,这改变了一切。它是 ASP.NET 网站项目吗?在这种情况下,you need to tweak your web.config file.
  • 不管这里是否是这种情况,我已经看到 Visual Studio 推荐的更改一旦进行就不会编译(在我的情况下是 VS 2017)。

标签: vb.net


【解决方案1】:

正如@Heinzi 所指出的,并在他提供的上一篇文章之后。

How can I use the latest VB.NET language level in an ASP.NET web site project?

更新Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet 包修复它,至少在我的开发机器中。

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多