Vb.net 创建一个“文件”是否更好;新";对象在构造函数中还是在类变量定义区域中?
在构造函数中还是在类变量定义区域中创建List对象更好?他们最终会做同样的事情吗?什么时候一种方法优于另一种 下面是一个示例类定义: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
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()中发生,毫无疑问我的意图是什么。