我有以下界面:
Interface IViewModel
...
End Interface
Interface ISpecialViewModel
Inherits IViewModel
...
End Interface
Interface IView
WriteOnly Property MyViewModel As IViewModel
End Interface
以下是我的课程:
Class VerySpecialViewModel
implements ISpecialViewModel
...
End Class
Class View
Implements IView
Public WriteOnly Property MyViewModel As VerySpecialViewModel Implements IView.MyViewModel
...
End Property
End Class
它告诉我'MyViewModel'无法实现'MyViewModel',因为接口'IView'上没有匹配的属性。
答案 0 :(得分:1)
Public Interface ISomething
WriteOnly Property Prop As IParent
End Interface
您的类实现不满足该接口声明。请考虑以下情况:
还有另一个名为IChild2的接口:
Public Interface IChild2
Inherits IParent
...
End Interface
根据ISomething
界面,您应该能够将实现IChild2
的类的实例分配到Thing.Prop
,因为它继承了IParent
。但是你不能,因为{ {1}}属性属于Thing.Prop
类型且IChild
未继承IChild2
的更新强> 的
该解决方案如何:
IChild
的 UPDATE2 强> 的
Class ThingBase
Implements ISomething
Public WriteOnly Property Prop As IParent Implements ISomething.Prop
Set(value As IParent)
End Set
End Property
End Class
Class Thing
Inherits ThingBase
Public Overloads WriteOnly Property Prop As IChild
Set(value As IChild)
MyBase.Prop = value
End Set
End Property
End Class
或
Interface IView(Of T As IViewModel)
WriteOnly Property MyViewModel As T
End Interface
Class VerySpecialViewModel
Implements ISpecialViewModel
End Class
Class View
Implements IView(Of ISpecialViewModel)
Public WriteOnly Property MyViewModel As ISpecialViewModel Implements IView(Of ISpecialViewModel).MyViewModel
Set(value As ISpecialViewModel)
End Set
End Property
End Class