假设一个对象具有以下代码......
Public Sub New()
Me.Name = "Default Name"
Initialize()
End Sub
Public Sub New(CustomName as String)
Me.Name = CustomName
Initialize()
End Sub
Private Sub Initialize()
'Initialize some other properties
End Sub
此用例是否有更优雅的模式?某种方式,一个构造函数可以调用另一个构造函数,并消除对Initialize()方法的需要?
答案 0 :(得分:1)
我不确定在C#意义上是否存在用于构造函数链接的VB语法,但如果我没记错,VB可以通过调用Me.New()
在内部调用其他构造函数。这是一回事。所以你应该能够做到这样的事情:
Public Sub New()
Me.New("Default Name")
End Sub
Public Sub New(CustomName as String)
Me.Name = CustomName
'Initialize some other properties
End Sub
答案 1 :(得分:1)
是的,您可以编写一个包含所有必需参数的构造函数,然后通过调用Me.Constructor()来编写其余的构造函数,而不提供提供默认值的方法块中的任何其他内容。
Public Sub New(CustomName as String)
Me.Name = CustomName
End Sub
Public Sub New()
Me.New("Default Name")
End Sub