Mel*_*een 4 c# interface constraints
我是否可以声明一个接口(即IMySpecialControl),它需要实现它的类也从一些基类继承(即System.Windows.Controls.UserControl)?
我的想法是,不,这是不可能的.但是以这样的方式编写客户端代码非常好,它只需要一个'IMySpecialControl'来定义它关心的几个成员,它可以指望该对象也是一个UserControl,然后它可以添加到GUI或操作.
我知道我总是可以检查定义为'IMySpecialControl'的对象实例是否也是UserControl,但我希望在.Net中可能有一些光滑的技巧我不知道.:-)
我是否可以声明一个接口(即IMySpecialControl),它需要实现它的类也从一些基类继承(即System.Windows.Controls.UserControl)?
不,C#中没有任何内容可以定义.
创建一个抽象子类可能是最简单的UserControl.
你可以做的是有一个泛型方法或类型,其限制是type参数实现一个接口并且与一个类兼容:
public void Foo<T>(T control) where T : UserControl, IMySpecialControl
Run Code Online (Sandbox Code Playgroud)
我不知道这是否对您的特定情况有帮助,但它是您可以达到原始要求的最接近的.