4

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

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
4

3 回答 3

4

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

于 2012-06-28T21:13:57.563 回答
2

这是一种有效的方法。可以在哪里调用新函数有一些注意事项:

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

在 MSDN 上阅读有关对象生命周期的更多信息。

于 2012-06-28T21:18:34.693 回答
1

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

最好只为初始化的某个部分编写代码一次。这是一种常见且有效的初始化模式。

于 2012-06-28T21:14:15.077 回答