Vb.net 创建一个“文件”是否更好;新";对象在构造函数中还是在类变量定义区域中?

Vb.net 创建一个“文件”是否更好;新";对象在构造函数中还是在类变量定义区域中?,vb.net,Vb.net,在构造函数中还是在类变量定义区域中创建List对象更好?他们最终会做同样的事情吗?什么时候一种方法优于另一种 下面是一个示例类定义: Public Class CProject 'Variable to hold a list of Load Objects, Instantiate here vs in New(). Private m_LoadList As New List(Of CLoad) Public Property LoadList() As List

在构造函数中还是在类变量定义区域中创建List对象更好?他们最终会做同样的事情吗?什么时候一种方法优于另一种

下面是一个示例类定义:

Public Class CProject

    'Variable to hold a list of Load Objects, Instantiate here vs in New().
    Private m_LoadList As New List(Of CLoad)

    Public Property LoadList() As List(Of CLoad)
        Get
            Return m_LoadList
        End Get
        Set(ByVal value As List(Of CLoad))
            m_LoadList = value
        End Set
    End Property

    Public Sub New()

    End Sub

End Class
诗句:

Public Class CProject

    'Variable to hold a list of Load Objects
    Private m_LoadList As List(Of CLoad)

    Public Property LoadList() As List(Of CLoad)
        Get
            Return m_LoadList
        End Get
        Set(ByVal value As List(Of CLoad))
            m_LoadList = value
        End Set
    End Property

    Public Sub New()
        m_LoadList = New List(Of CLoad)
    End Sub

 End Class
它更接近选项2,但有一些变化:

Private m_LoadList As List(Of ADR) = Nothing


Public Property LoadList() As List(Of CLoad)
    Get
        If m_LoadList Is Nothing Then
            m_LoadList = New List(Of CLoad)
        End If
        Return m_LoadList
    End Get
    Set(ByVal value As List(Of CLoad))
        m_LoadList = value
    End Set

End Property

通过这种方式,您可以引用该属性,并且仅在不存在实例时创建新实例。编码更简单,产生开销的错误几率更小

如果我没记错的话,如果这是一个继承类,可能会有一些细微的区别,比如基类构造函数是在调用之前还是之后调用(我认为VB和C之间有区别,但我找不到相关的问题),但对于大多数情况,它们应该是一样的。我刚才说的VB和C之间的差异。谢谢。为了代码的清晰性,我选择了第二个选项。这样,对象中初始化的所有内容都在New()中发生,毫无疑问我的意图是什么。