【问题标题】:vb.net Square Brackets Cause Error When Upgraded to Visual Studio 2015升级到 Visual Studio 2015 时,vb.net 方括号导致错误
【发布时间】:2016-06-17 11:09:02
【问题描述】:

在将 vb.net 代码从 Visual Studio 2008 升级到 Visual Studio 2015 的过程中,我得到一个 'Integer' 未声明。由于其保护级别,它可能无法访问。以下代码错误:

[Integer].TryParse(...)

错误也发生在与 [Date].TryParse 类似的代码上。原始代码和升级代码的目标框架都是 .NET Framework 3.5。升级目标框架并不重要。如果我删除方括号,代码就会编译。有谁知道为什么这种语法在 Visual Studio 2008 中有效,但在 Visual Studio 2015 中无效?

【问题讨论】:

  • 方括号不需要,除非您异想天开地将其用作变量或属性的名称
  • 这可能是一个没有被翻译到 Roslyn 编译器的怪癖。您可以删除方括号,如果您指的是类,则不需要它们。
  • 我不明白为什么这些括号会放在首位。括号的全部意义在于向编译器表明您想使用关键字作为标识符。在这种情况下,您正在调用类型的 Shared 成员,因此您特别希望将 IntegerDate 解释为关键字,即它们的内在类型。您有时会看到使用 String 完成了该操作,但因为 String 是一个 .NET 类型,所以这很有效。 IntegerDate 不是 .NET 类型。与这些内在类型对应的 .NET 类型是 Int32DateTime

标签: vb.net visual-studio-2015 visual-studio-2008-sp1


【解决方案1】:

@Plutonix @Blorgbeard 和 @jmcilhinney 都在 cmets 中回答,您需要删除方括号。转换为社区 wiki in line with this meta post 推荐,从“未答复”部分中删除。

@jmcilhinney

方括号的全部意义在于向编译器表明您想使用关键字作为标识符。在这种情况下,您正在调用一个类型的 Shared 成员,因此您特别希望 Integer 或 Date 被解释为关键字,即它们的内在类型。有时您会看到使用 String 完成了该操作,但因为 String 是 .NET 类型,所以这很有效。 Integer 和 Date 不是 .NET 类型。与这些内在类型对应的 .NET 类型是 Int32 和 DateTime

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多