接口的泛型类型约束

本文关键字:约束 泛型类型 接口 | 更新日期: 2023-09-27 18:31:06

我可以这样做:

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

有这样的事情吗?

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

我不想明确指定接口名称。

另一种方法是,我可以传入一个受class约束的参数,如果typeof(T).IsInterface返回 false,则抛出异常,但这不如约束干净。

接口的泛型类型约束

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

约束class意味着类型参数必须是引用类型。

那么没有明确接口名称的interface应该限制什么呢?

接口

本身只是方法/属性的声明,所以约束"某物是接口"字面意思是"某物有一些声明" - 这是无用的。