在 VB.NET 中执行函数而不先声明类的实例

Ben*_*ers 2 vb.net

有没有办法让我在不先声明的情况下对变量的新实例进行函数调用?

因此,例如在 Java 中,您可以执行以下操作:

new foo().bar(parameters);
Run Code Online (Sandbox Code Playgroud)

我在 Visual Basic 中尝试过类似的东西,但这是一个语法错误。目前我正在创建一个变量,然后运行该函数。

dim instance as new foo()
instance.bar(parameters)
Run Code Online (Sandbox Code Playgroud)

有什么我可以做的类似于上面的 Java 代码吗?

Ste*_*art 5

不完全是。您可以通过将实例化括在括号中来在更大的表达式中执行此操作,例如:

MessageBox.Show((New String("y"c, 1)).ToUpper())
Run Code Online (Sandbox Code Playgroud)

或者,事实上,虽然我觉得它更令人困惑,但您实际上甚至不需要实例化周围的括号:

MessageBox.Show(New String("y"c, 1).ToUpper())
Run Code Online (Sandbox Code Playgroud)

但是,如果您只想调用这样的方法,我所知道的唯一方法是将其包裹在CType运算符中。例如,如果你有一个这样的类:

Private Class Test
    Public Sub Show()
        MessageBox.Show("Hello")
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

你可以这样调用Show方法:

CType(New Test(), Test).Show()
Run Code Online (Sandbox Code Playgroud)

但是,它有点笨拙。

实际上,自从我昨天发布这个以来,SSS 提供了一个更好的答案。CType您可以使用Call关键字而不是将其包装在运算符中。例如:

Call New Test().Show()
Run Code Online (Sandbox Code Playgroud)