是否有VB.net等效于C#“ out var”

时间:2019-09-03 08:16:48

标签: c# vb.net

在C#中,我们有:

if (int.TryParse(someString, out var i))   {
    // do something with i
}

我可以在Visual Basic中做同样的事情吗?如果不是,我们能得到的最简洁的是什么?

1 个答案:

答案 0 :(得分:2)

如果我正确理解了此问题的意图,则不是在问传递引用参数的确切语法(VB.NET一直支持的功能),而是在问是否可以声明内联变量带有方法调用的参数列表,如C#7和更高版本提供的C​​#功能一样。

因此,previously-proposed duplicate似乎没有解决这个问题。该问题询问的是VB.NET支持的,在传递之前不需要初始化的副引用参数和需要这样做的副引用参数(即outref)之间的区别。 / p>

这个问题完全是在问其他问题。

不幸的是,VB.NET没有提供允许使用方法调用内联声明局部变量的语法。此外,尽管有几个开放的Github问题要求使用此功能(例如,参见#60#159#331),但似乎不太可能再添加它。根据{{​​3}},Microsoft已声明“展望未来,我们不打算将Visual Basic演变为一种语言” 。据推测,对语言语法的新添加将属于“不断发展的语言”类别,因此将排除方法调用内联的变量声明。

另请参见a blog post from March 11, 2020

对不起。 :(