接口的通用类型约束?

时间:2016-01-20 15:21:27

标签: c# .net generics generic-constraints

我可以这样做:

void MyMethod<T>() where T : class { }

有这样的东西吗?

void MyMethod<T>() where T : interface { }

我不希望明确指定接口名称。

另一种方法是,我可以传递一个受class约束的参数,并在typeof(T).IsInterface返回false时抛出异常,但这不像约束那样干净

1 个答案:

答案 0 :(得分:3)

这没有任何意义,因为它不会导致任何限制。

约束class表示type参数必须是引用类型。

那么没有显式接口名称的interface应该限制什么?

接口本身只是方法/属性的声明,因此约束&#34;接口&#34;字面上的意思是&#34;某些东西有一些声明&#34; - 那没用。