我想要一个方法的委托,该方法采用一个参数并返回结果,两者均为相同类型。
我还希望由泛型类型参数确定类型,但是以下语法使我无法使用。
delegate T SomeDelegate(T param)<T>;
我怎样才能做到这一点?
最佳答案
您必须在代表名称和方括号之间放入<T>
:delegate T SomeDelegate<T>(T param);
。在右括号之后,您只能说T
必须是哪种类型,以确保传递正确的类型。例如:
delegate T SomeDelegate<T>(T param) where T : IDisposable;
通常,这是必要的,以确保T被
Disposable
继承。因此,您以后可以将T
强制转换为IDposposable
并调用该接口的某些方法。请注意,只有接口才能成为用户进行过滤。