【问题标题】:VB.NET syntax for arrays of objects对象数组的 VB.NET 语法
【发布时间】:2009-06-22 12:05:07
【问题描述】:

在运行时声明对象数组大小的 VB.NET 语法是什么?

为了理解我的意思,这里是到目前为止的代码:

Private PipeServerThread As Thread()

Public Sub StartPipeServer(NumberOfThreads As Integer)
    ' ??? equivalent of C#
    ' ???   PipeServerThread = new Thread[numberOfThreads];
    ' ??? goes here
    For i = 0 To NumberOfThreads - 1
        PipeServerThread(i) = New Thread(New ThreadStart(AddressOf ListeningThread))
        PipeServerThread(i).Start()
    Next i
End Sub

我尝试了几件事,但最终将它与对象创建语法混为一谈。

【问题讨论】:

    标签: vb.net arrays object


    【解决方案1】:
    PipeServerThread = New Thread(numberOfThreads - 1) { }
    

    或者:

    ReDim PipeServerThread(numberOfThreads - 1)
    

    请记住,括号内的值是 VB.NET 中数组的上限(与 C# 中的数组长度不同)。

    【讨论】:

    • 数组的“上限”是您在括号中指定的正确术语,但是是的,这是正确的。然而,VB.NET 和 C# 在这方面的不同有点令人讨厌。 (C# 的方式似乎更合乎逻辑。)
    【解决方案2】:

    这应该是你想要的:

    ReDim PipeServerThread(numberOfThreads - 1)
    

    您不能使用 New 关键字,因为 VB.NET 编译器将此解释为尝试创建 Thread 类型的新实例。

    【讨论】:

    • 是的,我的 VB.NET 看起来有点生锈了。现在更新答案。
    • 删除了我之前的评论,因为它对编辑没有意义:)
    • @Noldorin:它不等同于提到的 C# 语句。看我的回答。
    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2012-02-03
    • 1970-01-01
    • 2019-01-25
    相关资源
    最近更新 更多