构造函数中的构造函数

时间:2012-06-28 21:11:43

标签: vb.net oop constructor initialization instantiation

这是个坏主意吗?在公共构造函数中调用泛型私有构造函数是否会创建多个实例,或者这是初始化类变量的有效方法吗?

Private Class MyClass
    Dim _msg As String

    Sub New(ByVal name As String)
        Me.New()
        'Do stuff
    End Sub

    Sub New(ByVal name As String, ByVal age As Integer)
        Me.New()
        'Do stuff
    End Sub

    Private Sub New() 'Initializer constructor
        Me._msg = "Hello StackOverflow"
        'Initialize other variables
    End Sub
End Class

3 个答案:

答案 0 :(得分:4)

这完全有效,是重用构造函数代码的常用方法。只实例化一个对象。

答案 1 :(得分:2)

这是一种有效的方法。有一些警告可以调用新函数:

  

Sub New构造函数只能在创建类时运行一次。它   不能在第一行以外的任何地方显式调用   来自同一个类或来自a的另一个构造函数的代码   衍生类。

详细了解MSDN上的object lifetime

答案 2 :(得分:1)

这样的链接构造函数肯定不会创建其他对象实例。

希望仅为初始化的某一部分编写代码一次。这是一种常见且有效的初始化模式。