11
如何将接口用作C#通用类型约束?
有没有办法获取以下函数声明? public bool Foo<T>() where T : interface; 即。其中T是接口类型(类似于where T : class和struct)。 目前,我已经满足: public bool Foo<T>() where T : IBase; IBase被定义为一个空接口,所有我的自定义接口都继承了该接口...不太理想,但它应该可以工作...为什么不能定义泛型类型必须是接口? 对于它的价值,我想Foo要这样做,因为是在需要接口类型的地方进行反射...我可以将其作为常规参数传入,并在函数本身中进行必要的检查,但这似乎要类型安全得多(而且我假设性能更高一点,因为所有检查都是在编译时完成的)。