【发布时间】:2017-03-22 15:35:51
【问题描述】:
我有一种情况,我需要一个变量是某种类型,但它也实现了一个特定的自定义接口。具体来说,我想要求对象是FrameworkElement,但它还实现了一个自定义接口,称之为IExample。
有什么方法可以从IExample 的声明或实际变量中做到这一点?我正在设想这样的事情(伪语法):
public FrameworkElement<IExample> ChildView { get; set; }
或者我想将其声明为对接口本身的约束:
public interface IExample : FrameworkElement
这些在 C# 中是否可行?是否有替代方案可以完成同样的事情?基本上我只想要求实例是FrameworkElement 的子类,它也实现了IExample。
【问题讨论】:
-
据我所知,不可能完全按照您的意愿行事。作为一种解决方法,您可以在 IExample 接口中声明 FrameworkElement 类型的属性。 IExample 的所有实现都将为此属性执行“return this”。