Ответ 1
Foo.New()
выполняется перед инициализаторами поля в Bar()
.
Часть New
As New List(Of String)
на самом деле является частью конструктора Bar.New()
, который выполняется после MyBase.New()
.
Может кто-нибудь объяснить, почему я получаю исключение NullReference Exception для объекта, который я инициализировал как новый список (Of)??
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
Foo.New()
выполняется перед инициализаторами поля в Bar()
.
Часть New
As New List(Of String)
на самом деле является частью конструктора Bar.New()
, который выполняется после MyBase.New()
.