2010-05-11 4 views
0

제목이 혼란 스럽다면 사과드립니다. 이 질문은 커피 및/또는 수면 부족의 결과 일 수 있지만, 지금 내 마음이 올바르게 작동하지 않습니다.기존 속성을 반환 형식의 자식 폼으로 재정의

BaseClass 

GeneralForm : Inherits BaseClass 

SpecificForm : Inherits GeneralForm 

그리고 오브젝트과 같이 : 어쨌든

, 내가 지금 같은 상속 트리가 (나는 구조가 좋지 않은 것을 알고)

MyItem 

MySpecificItem : Inherits MyItem 

내가 속성으로 Items As List (Of MyItem)BaseClass. SpecificFormItems으로 대체하여 List (Of MySpecificItem) 유형을 반환하고 싶습니다. 나는 이것이하기 쉬운 것처럼 느낀다. 그러나 다시, 나의 머리는 돌고있다. 그리고 나는 곧바로 생각할 수 없다.

미리 감사드립니다. 위의 할 수없는 경우

편집

, 그것은 List (Of MyItem)을하고 List (Of MySpecificItem)으로 바꿀 수 있습니까? MySpecificItem에는 SpecificForm에만 해당하는 추가 속성이 하나 있지만 그럴 필요가 있습니다.

누구나? : \

+0

이것은 불가능하지 않습니다. – Jason

답변

0

당신은 ... 그냥 다음을 수행 할 SpecificForm에 수 있어야한다

Private pMySpecificItems As List(Of MySpecificItem) 

Public Shadows ReadOnly Property Items() As List(Of MySpecificItem) 
    Get 
     Return pMySpecificItems 
    End Get 
End Property 

SpecificForm에서이 속성은 기본 클래스에서 Items 속성을 숨 깁니다 컴파일러를 말할 것이다 '그림자'키워드 형태.

기본 클래스의 속성에 실제로 위임 할 수없고 List(Of MySpecificItem)으로 "캐스팅"할 수는 있지만 하위 클래스는 해당 기본 클래스의 인스턴스로 볼 수 있지만 기본 클래스 개체는 인스턴스로 캐스트 할 수 없으므로 (서브 클래스는 기본 클래스가 지원하거나 구현하지 않는 필수 속성/상태를 추가했을 수 있기 때문에).

관련 문제