【发布时间】:2021-02-09 10:24:02
【问题描述】:
我熟悉 C#,但完全不熟悉 VB,我想将 C# 示例(在 LINQPad 中)转换为 VB:
if (2 + 2 == 4)
"True".Dump();
我想出了以下工作 VB 代码:
Dim word = "True"
If 2 + 2 = 4 Then
word.Dump
End If
现在,为什么我不能只写以下内容呢?
If 2 + 2 = 4 Then
"True".Dump ' BC30035 Syntax error
End If
似乎我无法在 VB 中将方法应用于 litteral,我必须先将其存储在变量中, 但我肯定在这里遗漏了一些东西......不是吗?
附:字符串周围的括号不能更好地工作。
【问题讨论】:
-
我不使用 LinqPad,但您绝对可以在 Visual Studio 中使用。
-
@jmcilhinney 你确定吗?我可以使它与
CStr("True").Dump()一起工作,但不能与"True".Dump()中的普通文字一起工作。类似地,对于整数的扩展方法,CInt(2).Foo()可以工作,但2.Foo()想要将2视为行号并抱怨它需要后跟冒号。 -
@AndrewMorton IIRC 如果你使用
Call,你可以。 -
@KonradRudolph jmcilhinney 在他的answer 中提到了这一点。我只是在查看 VB.NET 语言规范,如果其他人感兴趣,它看起来像 Statements 部分涵盖了它:“Microsoft Visual Basic 编译器只允许以关键字或标识符开头的语句。”