2012-08-17 3 views
1

나는 Visible 속성을 갖는 MyVisible 클래스를 가지고 있습니다.VB.NET에서 속성 구현

나는 클래스 MySuperVisible 재산 Visible도 포함하는 인터페이스 ISuperVisible를 구현해야합니다.

"MySuperVisible"클래스의 "ISuperVisible"인터페이스의 "Visible"속성은 어떻게 구현해야합니까?

Class MySuperVisible 
    Inherits MyVisible 
    Implements ISuperVisible 

... 

Private Property PrivatePropertyPlaceholder Implements ISuperVisible.Visible 
    Get 
    Return MyBase.Visible 
    End Get 
    Set 
    MyBase.Visible = value 
    End Set 
End Property 

은이를 수행 할 수있는 유일한 해결책입니까?

추신. MySuperVisible은 MyVisible을 상속하므로 기본 클래스에 이미있는 속성을 구현해야합니다.

+2

개인 속성을 구현하려는 이유가 무엇인가요? 그리고 'MyBase.Visible'은 무엇입니까? 나는 네가 우리 모두에게 정보를주지 않은 것 같아. 'MySuperVisible'이'MyVisible'에서 상속 받고'ISuperVisible'을 구현할 수 있습니까? –

+0

올바르게 이해한다면,'MyVisible'의'Visible' 속성은'ISuperVisible'에서'Visible'을 구현할 필요성과 충돌합니다. 그게 맞습니까? 만약 그렇다면, 나는 마이크 C가 옳다고 생각한다. 내가 잘못 본 것이 아니라면, 'Shadows'는 'MySuperVisible'의 구현을 강제로 'MyVisible'의 설정보다 우선해야한다. – Kjartan

+0

예, Mike C에게 질문을 완료 해 주셔서 감사합니다. MySuperVisible은 MyVisible을 상속하므로 기본 클래스에 이미 존재하는 속성을 구현해야합니다. – serhio

답변

3

흥미로운 질문입니다. 나는 Shadows 키워드가 아마 여기에 갈 수있는 적절한 방법이라고 생각한다. 따라서 상황이 좀 더 명시 적으로 나타납니다. PrivatePropertyPlaceholder :

Public Shadows Property Visible As Boolean Implements ISuperVisible.Visible 
    Get 
     Return MyBase.Visible 
    End Get 
    Set(value As Boolean) 
     MyBase.Visible = value 
    End Set 
End Property 
+0

'Public Shadows 속성 Visible As Visible Aspect ISuperVisible.Visible' 행은 어떻게됩니까? 나는 모든 시체를 명시 적으로 써야 하나? – serhio

+2

속성 본문과 명시 적 set/get from/from mybase없이 그림자를 적용하면 기본 클래스 visible 속성이 설정되지 않습니다. – Alex