有没有办法得到下面的函数声明?
public bool Foo<T>() where T : interface;
其中 T 是接口类型(类似于 where T : class
和 struct
)。
目前我已经接受了:
public bool Foo<T>() where T : IBase;
其中 IBase 被定义为一个空接口,由我所有的自定义接口继承... 不理想,但它应该工作... 为什么不能定义泛型类型必须是一个接口?
无论如何,我希望这样做是因为 Foo
在需要接口类型的地方进行反射... ... 我可以将它作为一个普通参数传递进去,并在函数本身中执行必要的检查,但这似乎更加安全(我认为性能更好一些,因为所有检查都是在编译时完成的)。