【发布时间】:2013-01-01 23:06:56
【问题描述】:
我的接口是用一些方法和属性定义的
Public Interface ITouchInterface
'Inherits System.Windows.Controls.Canvas ' This is the problem
'Methods and Properties
End Interface
我了解我遇到的问题,该接口只能从另一个接口继承,因为System.Windows.Controls.Canvas 不是我不能从它继承的接口。
我的实现接口的类依赖于画布的属性来运行。
目前我的接口实现如下:
Public Class TouchClass
Inherits Canvas
Implements ITouchInterface
'Implementation
End Class
基本上,为了与我的应用程序的其余部分一起工作,我需要接口来指定从画布继承。应用程序的其余部分需要ITouchInterface 类型的对象,但在我当前的实现中,应用程序在实例化类之前不知道画布属性。
例如,我声明了一个ITouchInterface 的列表。然后用实现接口的类填充它。现在我需要遍历这个列表并获取每个项目的宽度,但宽度是画布的一个属性,目前无法访问。
是否存在我不知道的画布界面或是否有任何替代解决方案?
【问题讨论】:
-
您是否需要每个
ITouchInterface成为Canvas,或者您真的需要能够从每个Width获得一个Width? (回答前仔细考虑) -
我需要每个界面都是画布,宽度只是我需要使用的众多属性之一。我还需要画布的方法才能在窗口中显示它。
-
您可以向接口添加一个属性,该属性返回一个
Canvas对象。当然,实现者可能会撒谎并返回除自身之外的其他内容,但如果您确实需要完全访问Canvas,那么这可能是让事情正常进行的最简单方法。 -
为什么不使用基类而不是接口呢?在我看来,这就是你想要的。
-
@Damien_The_Unbeliever 谢谢,我只需要对我的实现做一些小的调整就可以了。
标签: wpf vb.net class interface