2012-01-16 5 views
1

VB.net에서 두 클래스를 상속받을 수 있습니까?VB.net 상속 2 클래스

우리는 System.Web.UI.WebControls.Label에서 상속받은 사용자 지정 사용자 정의 컨트롤을 개발하고 있습니다. 우리는 이러한 컨트롤을 구현할 계획이지만 대부분 동일한 추가 속성을 공유합니다. 우리는 이러한 속성을 중앙 집중화 할 수 있기를 희망합니다.

나는 인터페이스를 살펴 봤지만 구현할 필요가있는 '계약'속성 인 것 같습니다.

생각하십니까?

+0

[composition] (http://en.wikipedia.org/wiki/Object_composition) 대신 http://stackoverflow.com/a/178368/284240 –

답변

2

아니요. VB.net 형식이 두 개 이상의 클래스를 상속하는 것은 불가능합니다. 무한 수의 인터페이스를 구현할 수는 있지만 상속은 한 가지 유형으로 제한됩니다.

참고 : 이것은 임의의 VB.Net 제한 사항이 아닙니다. 실제로 CLR에 구워진 제한 사항입니다. C++/CLI와 같은 언어는 CLR 레벨에서 단일 상속을 사용하는 매우 흥미로운 유형의 병합 루틴과 함께이 문제를 해결합니다.

+0

을 사용해보세요. 감사합니다. JaredPar - 우리가 구현하는 가장 좋은 방법에 대한 제안 이 상황? 중앙 집중화를 잊어 버리고 각 속성을 구현하십시오. –

+0

@ timmah.faase 공통 기능을 단일 클래스에 넣은 다음 사용자가 해당 유형의 필드를 가지고 있고 동일한 이름의 속성을 사용하여 필드 유형으로 전달하도록합니다. 공유 기능을위한 인터페이스를 만들 가능성이 있습니다. – JaredPar

0

아니요, 두 클래스에서 상속 할 수 없습니다.

그러나, 우리는 정확히 당신이 같은 문제에 직면하고 다음과 같은 방식으로 그것을 해결 :

1) 우리는 그들이 쉽게 검색 할 수 있도록 각 컨트롤에 의해 구현 된 인터페이스를 만들었습니다.

2) 우리는 모든 클래스에 공통된 설정 및 로직을 포함하는 설정 클래스를 만들었습니다.

3) 우리는 모든 속성에 대해 표준 작업을 수행 할 수 있도록 설정 클래스를 노출하기 위해 1로 만든 인터페이스에 속성을 추가했습니다.