繁体   English   中英

不同的字符串数组初始化之间的行为不同

[英]Different behavior between different String Array initialisation

如果我像这样填充数组

Return New String() {"A", "B"}

并将其返回到属性中以将其元素显示到组合框中

Public Class Test
    Public ReadOnly Property TLTeams As String()
        Get
            'Return New String() {"A", "B"}
        End Get
    End Property
End Class

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim t As New Test
        For i As Integer = 0 To t.TLTeams.Length
            ComboBox1.Items.Add(t.TLTeams(i).ToString)
        Next i
    End Sub
End Class

工作正常。 但是如果我将初始化更改为

Public ReadOnly Property TLTeams As String()
    Get
        Dim a As String = "A"
        Dim b As String = "B"
        Dim ArS(1) As String
        Return ArS
    End Get
End Property

我的组合框为空(尽管我没有收到任何错误)。 有人可以向我解释吗?

在第二个示例中,如果您希望从属性中获取某些东西,则需要填充数组。

Public ReadOnly Property TLTeams As String()
    Get
        Dim a As String = "A"
        Dim b As String = "B"
        Dim ArS(1) As String
        ArS(0) = a
        ArS(1) = b
        Return ArS
    End Get
End Property

但是,在给定上下文的情况下,返回固定的一组常量字符串,第一种方法似乎是更可取的。 (更少的代码和数组大小是自动计算的)。

如果上下文发生变化,并且您发现自己需要返回可变数量的字符串,则可以考虑将List(Of String)用作返回类型List(Of String)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM