vb6에서 여러 생성자를 사용할 수 있습니까? 내가 요청하는 이유는 클래스를 초기화하는 것을 보았 기 때문입니다. 그러나 생성자에 0 개 이상의 매개 변수를 넣을 수 있는지 또는 class_initialize가 생성자이고 매개 변수의 수를 허용 할 수 있는지 여부는 알 수 없습니다. 그 혼란은 주로 C#에 익숙하기 때문에 vb6으로가는 것은 클래스에 관한 한 혼란 스럽습니다.VB6의 다중 생성자?
답변
Class_Initialize
은 클래스의 인스턴스가 인스턴스화되는 즉시 항상 호출되는 이벤트입니다. C# 생성자와 비교할 수 없습니다.
예를 들어, Class_Initialize
은 Private
으로 생성되지만 개인 생성자가있는 C# 클래스는 인스턴스화 할 수 없습니다.
많은 점을 없을 것입니다 당신이 Public
에 Private
에서 VB6 Class_Initialize
이벤트를 변경할 수 있지만 : 이벤트가 어쨌든 인스턴스에서 호출되기 때문에, 당신은 왜 두 번째 명시 적으로 호출 할 것인가? (그렇다면 Class_Initialize
이벤트에서 호출되는 public 메서드를 사용하는 것이 좋습니다.)
VB5 이벤트에 매개 변수를 추가 할 수 없으며 Optional
이벤트도 매개 변수를 추가 할 수 없습니다. 그렇게하려고하면 컴파일 오류가 발생합니다.
Initialize
방법을 롤과
Initialize
방법이 될 때까지 클래스가 사용되지 않도록하기 위해 내부 플래그를
isInitialized
상태 변수를 가지고있다
호출됩니다. 또한 '공장'접근 방식을 고려하십시오 : PublicNotCreatable
및 공장에서 호출 한 Friend Initialize
메서드를 사용하는 클래스가 적절하게 초기화 된 호출자에게 제공됩니다.
VB6에서는 메서드 매개 변수를 optional
으로 지정할 수 있습니다. 즉, 함수를 호출 할 때 지정할 필요가 없습니다. 값을 지정하지 않은 경우 메소드 시그니처에 기본값이 제공됩니다.
here에서 예 :이 중 하나를 호출 할 수 있습니다
Private Sub Draw(Optional X As Single = 720, Optional Y As Single = 2880)
Cls
Circle (X, Y), 700
End Sub
:
Draw 'OR
Draw 100 'OR
Draw 200, 200
편집 난 당신이있을 수 있습니다 생각하지만 당신도 함께 선택 및 일반 매개 변수를 사용할 수 있습니다
끝 부분에 선택 사항을 넣으십시오.
+1 코드 샘플 포함. – David
그러나 인수를 사용하여 * 생성자 *를 만들 수는 없으며 선택적 또는 필수입니다. – MarkJ
@MarkJ - 아, 네 말이 맞아. 나는 이것을 깨닫지 못했다. VB6에서 클래스를 자주 사용하지 않았으므로이 문제를 결코 알지 못했습니다. 생성자는 일반적인 방법보다는 이벤트와 비슷하다고 [여기] (http://www.xtremevbtalk.com/showthread.php?t=313295)합니다. @Mark Noon : 아래 onedaywhen의 대답을 사용해야합니다. 커스텀'Initialize' 메쏘드에 옵션 매개 변수를 추가하는 방법에 대한 나의 답을 여기서 계속 유지할 것입니다. –
- 1. 클래스의 다중 생성자 문제
- 2. 다중 생성자, 단일 소비자
- 3. 범위를 변경하는 Structuremap이있는 다중 생성자?
- 4. VB6의 AddRef()
- 5. 속성 지정이있는 f #의 다중 생성자
- 6. VB6의 InternetCheckConnection이 false를 반환합니다.
- 7. vb6의 음성 인식
- 8. vb6의 쿼리 결과가 잘못되었습니다.
- 9. vb6의 문서 템플릿은 무엇입니까?
- 10. VB6의 VSFlexgrid 라이센스 문제
- 11. VB6의 비관적 잠금 검색
- 12. VB6의 빈 Datagrid 문제
- 13. VB6의 가짜 컴파일 문제
- 14. # VB6의 'StrConv'와 같습니다.
- 15. VB6의 인터페이스 제한
- 16. VB6의 코드 줄 제한
- 17. VB6의 자동 완성 (인텔리가) 갑자기
- 18. VB6의 어떤 파일이 재배포 가능합니까?
- 19. VB6의 SHEmptyRecycleBin이 아무 것도하지 않습니다.
- 20. VB6의 원격 통신 포트에 인쇄
- 21. VB6의 문자열에서 후행 "-"문자를 제거하십시오.
- 22. vb6의 계층화 된 서비스 공급자
- 23. Ninject에서 생성자 생성자 상속
- 24. 생성자
- 25. 생성자
- 26. 다중 매개 변수가있는 Unity/Caliburn Micro, 주입 생성자
- 27. 다중 스레드 응용 프로그램에서 정적 생성자 예외 처리
- 28. 템플릿 클래스 생성자 문제 - 다중 배열 배열에 대한 컨테이너 디자인
- 29. Delphi에서 lock-free 큐 "다중 생성자 - 단일 소비자"가 존재합니까?
- 30. VB6의 C#에서 정적 인 정적?
+1. 내 것보다 훨씬 더 나은 대답. – David