방법: 구성 요소 컨테이너 확장
업데이트: 2007년 11월
구성 요소 컨테이너는 완전히 확장할 수 있습니다. Container 클래스에서 상속하고 속성이나 메서드를 추가할 수 있으며 사용자 지정 기능을 추가하여 규칙을 적용하고 기본 메서드 또는 컨테이너에서 통합할 기타 사용자 지정 기능을 재정의할 수 있습니다. 컨테이너와 컨테이너를 확장하는 방법에 대한 자세한 내용은 컨테이너, 사이트 및 구성 요소를 참조하십시오.
기본 클래스를 확장하는 것처럼 Container를 확장할 수 있습니다. 기본 클래스의 속성을 상속하는 클래스를 만들고 확장할 기본 메서드를 재정의하고 필요한 속성이나 메서드를 추가할 수 있습니다. 그런 다음 새 클래스를 표준 Container처럼 사용하고 인코딩된 새 기능을 모두 사용할 수 있습니다.
컨테이너 기본 클래스를 확장하려면
Container 클래스에서 상속되는 새 클래스를 선언합니다.
Public Class myContainer Inherits System.ComponentModel.Container End Class
class myContainer: System.ComponentModel.Container { }
class myContainer extends System.ComponentModel.Container { }
기본 클래스 메서드를 재정의하여 기능을 추가합니다. 다음 예제에서는 Add 메서드를 재정의하는 방법을 보여 줍니다.
참고: Container에는 실제로 두 개의 Add 오버로드가 있으며 이 예제에서는 각 오버로드를 제공할 수 있습니다.
' Because Add is overloaded, this line includes the Overloads keyword. Public Overloads Overrides Sub Add(ByVal component As _ System.ComponentModel.IComponent) ' Determines if the component can be added to the container. If TypeOf component Is Widget Then ' Calls the base Add function to add the component. MyBase.Add(component) Else ' Throws an exception. Throw New NonWidgetException() End If End Sub
public override void Add(System.ComponentModel.IComponent component) { if (component is Widget) base.Add(component); else { throw(new NonWidgetException()); } }
public void Add(System.ComponentModel.IComponent component) throws NonWidgetException { if ( component instanceof Widget ) { super.Add(component); } else { throw new NonWidgetException() ; } }
새 컨테이너에 통합할 새 속성이나 메서드를 추가합니다. 자세한 내용은 Class 속성, 필드, 메서드를 참조하십시오.