[英]VB.NET 2005 - Cannot Bind To New Display Member - ComboBox - Array
[英]Proper usage of array as field member in VB 2005
我通常使用C#,并且试图通过将Qbasic程序员简化为VB 2005将其转换为面向对象编程的乐趣。
以下是我要完成的工作的极其简化的版本。 它可以成功编译,但是卡对象数组中的所有成员都设置为“ Nothing”。 测试行抛出NullReferenceException。 我究竟做错了什么?
Sub Main()
Dim deck1 As New Deck
Console.WriteLine("Test: " & deck1.cards(2).face)
End Sub
Class Card
Public face As String
Sub New()
face = "Blank"
End Sub
End Class
Class Deck
Public cards(51) As Card
End Class
是的,当您在.NET中创建数组时,该数组的每个元素均设置为元素类型的默认值-对于类为null / Nothing。
您需要在使用数组之前填充它(或期望它充满空引用)。
请注意,这在C#中的行为将完全相同。
编辑:由于没有人实际发布的人口代码仍然有效,所以这里是:
Class Deck
Public cards(51) As Card
Public Sub New()
For i As Integer = 0 To cards.Length-1
cards(i) = New Card()
Next
End Sub
End Class
你需要做一些
For Each currentItem As String in Me.face
currentItem = "Blank"
End
如果for-each的语法关闭,我很抱歉,我通常是C#。 但基本问题是您尚未初始化数组的每个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.