2012-06-28 2 views
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 
+1

http://www.quickmeme.com/meme/3pwiuu/ – templatetypedef

답변

2

유효한 접근 방법입니다. 새 함수를 호출 할 수있는 몇 가지주의 사항이 있습니다.

하위 생성자는 클래스를 만들 때 한 번만 실행할 수 있습니다. 은 동일한 클래스 또는 파생 클래스의 다른 생성자 코드 코드의 첫 번째 줄 이외에 명시 적으로 호출 할 수 없습니다.

MSDN의 object lifetime에 대한 추가 정보를 읽어보십시오.

+0

링크에 대해 가장 철저한 답변과 감사를드립니다. 사랑 읽기 문서 :) ... (풍자가 아닙니다 : P) – Chiramisu

4

. 하나의 개체 만 인스턴스화됩니다.

1

이와 같은 연결 생성자는 확실히 추가 개체 인스턴스를 만들지 않습니다.

초기화의 특정 부분에 대한 코드를 한 번만 작성하는 것이 바람직합니다. 이것은 공통적이고 유효한 초기화 패턴입니다.