[英]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.