Jos*_*ola 5 language-agnostic vb.net instantiation private-members
我不知道以前是否曾经问过这个问题,但我们今天在工作中正在讨论它.私有变量(共享/静态)是否应该在标注/定义时实例化,或者在构造函数中执行此操作是否更好?
例如,这对我来说似乎完全没问题......
Public Class IpCam
Private Const HOST As String = "http://test.com/url/example"
Private Shared _Example As New OurClass(HOST)
Public Shared ReadOnly Property Example() As OurClass
Get
Return _Example
End Get
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
但是其他人告诉我它应该这样做......
Public Class IpCam
Private Const HOST As String = "http://test.com/url/example"
Private Shared _Example As OurClass
Public Sub New()
_Example = New OurClass(HOST)
End Sub
Public Shared ReadOnly Property Example() As OurClass
Get
Return _Example
End Get
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
有什么不同?关于使用哪一个,是否存在共识?
小智 3
这确实是一个偏好问题。我认为更重要的是一致性:如果您内联实例化一些变量,而在构造函数中实例化其他变量,则维护起来会变得更加困难,因为不清楚在哪里实例化什么。
一个好主意是将变量声明保留在构造函数上方(这样您就不必跳转来查找所有变量实例化),并内联实例化所有内容。对于那些需要更复杂初始化代码的少数对象,您可以使用构造函数。