【问题标题】:How to declare an array inline in VB.NET如何在 VB.NET 中声明一个内联数组
【发布时间】:2010-09-22 10:16:54
【问题描述】:

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

var strings = new string[] {"abc", "def", "ghi"};

【问题讨论】:

    标签: arrays vb.net literals


    【解决方案1】:
    Dim strings As String() = New String() {"abc", "def", "ghi"}
    

    【讨论】:

    • 啊,但这确实帮助我将内联声明传递给函数:MyFunction(somestring, New String() {"abc", "def", "ghi"})
    【解决方案2】:

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

    Dim strings = New String() {"abc", "def", "ghi"}
    

    (大约晚了 25 秒...)

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

    【讨论】:

      【解决方案3】:

      Dim strings As String() = {"abc", "def", "ghi"}

      【讨论】:

        【解决方案4】:
        Dim strings() As String = {"abc", "def", "ghi"}
        

        【讨论】:

        • 不太确定我是否喜欢变量名上的数组指示符,它违反了一般约定。尤其是其他语言。
        • @ganjeii 并非所有语言:例如 C,但更重要的是在这种情况下 VBA,只接受此语法用于数组声明
        • 请注意,正如在下一个答案中推断的那样,这两个是等价的:Dim strings() As StringDim strings As String()
        【解决方案5】:

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

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

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

        编译它,保留调试信息:

        csc /debug+ Test.cs
        

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

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

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

        【讨论】:

        • 我同意 Reflector 应该在每个 .NET 开发人员工具带中。但为此,使用converter.telerik.com的在线转换器会更简单
        • 这有助于指定{Nothing}String 或基本上任何其他类型的数组,而不是Object 的数组,编译器将在某些特定的场景如果你没有在内容前包含New String()
        【解决方案6】:

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

        Dim strings = {"abc", "def", "ghi"}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-29
          • 2019-07-18
          相关资源
          最近更新 更多