如何将c#中的方法参数声明为具体类和接口

时间:2013-03-26 17:15:37

标签: c# inheritance

我想编写一个接受Frame参数的方法。在伪c#

public void Foo(FrameworkElement and ISomeInterface p){
    ...
}

这可能吗?它必须使用定义的类

public class MyGrid : Grid, ISomeInterface {
}

已知Grid是FrameworkElement的子类

1 个答案:

答案 0 :(得分:4)

您可以创建一个强制执行这些约束的通用方法:

public void Foo<T>(T p) 
    where T : FrameworkElement, ISomeInterface

所以在这里你说传入的对象的Type需要是FrameworkElement并实现ISomeInterface