0

New List(Of) として初期化したオブジェクトに対して NullReference Exception を取得する理由を誰かが説明できますか??

Module Module1
  ' MAIN =================================    
  Sub Main()
    Console.Clear()
    Console.WriteLine("Creating Bar")
    Dim myBar As New Bar()
    Console.ReadLine()
  End Sub    
End Module

Class Foo
  Public Overridable Property Test As String

  Public Sub New()
    Me.Test = "hello"
  End Sub
End Class

Class Bar
  Inherits Foo
  Private _MyString As New List(Of String)

  Public Sub New()
    MyBase.New()
  End Sub

  Public Overrides Property Test As String
    Get
      Return MyBase.Test
    End Get
    Set(value As String)
      MyBase.Test = value
      ' NULL REFERENCE EXCEPTION ???????!!!!!!!!!!!
      Console.WriteLine("{0}, and _MyString.Count = {1}", MyBase.Test, Me._MyString.Count)
    End Set
  End Property
End Class
4

1 に答える 1

2

Foo.New()のフィールド初期化子の前に実行されBar()ます。

New部分は、As New List(Of String)実際にはBar.New()コンストラクターの一部であり、 の後に実行されMyBase.New()ます。

于 2012-09-25T14:54:04.863 に答える