我想定义一个类MyClass<T>
和一个非常特殊的函数MyFunc<T>
,但我想强制T
继承(以任何方式)接口或类。我们称之为IMyInterface
。
我对C#的了解允许我这样做的唯一方法是定义泛型类,检查它是否继承(例如,参见How do I check if a type is a subtype OR the type of an object?),否则抛出异常。
有没有办法在编译时强制执行此操作,而不是运行时?
答案 0 :(得分:4)
通用类型约束:
public void MyFunc<T>() where T : IMyInterface {
}