如何在VB.NET中声明一个内联数组

eri*_*rik 56 vb.net arrays literals

我正在寻找VB.NET的等价物

var strings = new string[] {"abc", "def", "ghi"};
Run Code Online (Sandbox Code Playgroud)

gfr*_*zle 74

Dim strings() As String = {"abc", "def", "ghi"}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 43

现在已经有很多正确答案,但这里有一个"教人钓鱼"的版本.

首先在C#中创建一个小型控制台应用程序:

class Test
{
    static void Main()
    {
        var strings = new string[] {"abc", "def", "ghi"};
    }
}
Run Code Online (Sandbox Code Playgroud)

编译它,保留调试信息:

csc /debug+ Test.cs
Run Code Online (Sandbox Code Playgroud)

在其上运行Reflector,打开Main方法 - 然后反编译为VB.你最终得到:

Private Shared Sub Main()
    Dim strings As String() = New String() { "abc", "def", "ghi" }
End Sub
Run Code Online (Sandbox Code Playgroud)

所以我们得到了相同的答案,但实际上并不知道VB.这并不总是有效,而且还有很多其他的转换工具,但这是一个好的开始.绝对值得尝试作为第一个停靠港.

  • 我同意Reflector应该在每个.NET开发人员工具带中.但为此,在http://converter.telerik.com/上使用在线转换器会更简单 (10认同)

Net*_*ity 9

在支持类型推断的较新版本的VB.NET中,这个较短的版本也可以工作:

Dim strings = {"abc", "def", "ghi"}
Run Code Online (Sandbox Code Playgroud)


Dav*_*dro 5

Dim strings As String() = New String() {"abc", "def", "ghi"}
Run Code Online (Sandbox Code Playgroud)

  • 啊,但这确实帮助我将内联声明传递给函数:MyFunction(somestring,New String(){"abc","def","ghi"}) (5认同)

Jes*_*alm 5

不是VB人.但也许是这样的?

Dim strings = New String() {"abc", "def", "ghi"}
Run Code Online (Sandbox Code Playgroud)

(迟到约25秒......)

提示:http://www.developerfusion.com/tools/convert/csharp-to-vb/