有没有办法获得下面的函数声明?
public bool Foo<T>() where T : interface;
即。其中T是接口类型(类似于where T : class
和struct
)。
目前,我已经满足于:
public bool Foo<T>() where T : IBase;
其中IBase被定义为一个空接口,它由我的所有自定义接口继承...不是很理想,但应该能行得通。为什么不能定义泛型类型必须是接口呢?
不管它有什么价值,我之所以要这样做,是因为Foo
在需要接口类型的地方进行反射……我可以将其作为一个普通参数传入,并在函数本身中进行必要的检查,但这似乎更加安全(而且我认为性能更好,因为所有检查都是在编译时完成的)。
https://stackoverflow.com/questions/1096568
复制相似问题