【发布时间】: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成员,因此您特别希望将Integer或Date解释为关键字,即它们的内在类型。您有时会看到使用String完成了该操作,但因为String是一个 .NET 类型,所以这很有效。Integer和Date不是 .NET 类型。与这些内在类型对应的 .NET 类型是Int32和DateTime。
标签: vb.net visual-studio-2015 visual-studio-2008-sp1