自动实现 属性 导致空引用,而完全写入 属性 则不会

Automatic Implemented Property leads to a Null Reference while full written Property does not

谁能告诉我为什么要执行这个

Module Module1
    Sub Main()
        Dim currentSourceData As New SourceData
        currentSourceData.datafiles.Add("234")
    End Sub
End Module

确实给我

System.NullReferenceException: 'Object reference not set to an instance of an object.'

当我使用自动实现的属性时

Public Class SourceData
    Public Property datafiles() As List(Of String)
End Class

但是当我使用 属性 完全写的时候它不会:

Public Class SourceData
    Private _datafiles As New List(Of String)
    Public Property datafiles() As List(Of String)
        Get 
           Return _datafiles
        End Get
        Set(value As List(Of String))
            _datafiles = value
        End Set
    End Property
End Class

此处缺少 New 运算符:

Public Class SourceData
    Public Property datafiles() As List(Of String)
End Class