通用委托
Generic Delegate
我想要一个方法的委托,该方法接受一个参数和 returns 个结果,两者类型相同。
我还希望类型由泛型类型参数确定,但以下语法使我失败。
delegate T SomeDelegate(T param)<T>;
我怎样才能做到这一点?
必须在method/delegate名称和常规参数列表之间声明类型参数:
delegate T SomeDelegate<T>(T param);
您必须将 <T>
放在代表姓名和左括号之间:delegate T SomeDelegate<T>(T param);
。在右括号之后,您只能说 T
必须是哪种类型,以确保传递正确的类型。例如:
delegate T SomeDelegate<T>(T param) where T : IDisposable;
通常这是必要的,以确保 T 被 Disposable
继承。所以你稍后可以将 T
转换为 IDposposable
并调用接口的一些方法。
注意,只有界面可以被用户过滤。
我想要一个方法的委托,该方法接受一个参数和 returns 个结果,两者类型相同。 我还希望类型由泛型类型参数确定,但以下语法使我失败。
delegate T SomeDelegate(T param)<T>;
我怎样才能做到这一点?
必须在method/delegate名称和常规参数列表之间声明类型参数:
delegate T SomeDelegate<T>(T param);
您必须将 <T>
放在代表姓名和左括号之间:delegate T SomeDelegate<T>(T param);
。在右括号之后,您只能说 T
必须是哪种类型,以确保传递正确的类型。例如:
delegate T SomeDelegate<T>(T param) where T : IDisposable;
通常这是必要的,以确保 T 被 Disposable
继承。所以你稍后可以将 T
转换为 IDposposable
并调用接口的一些方法。
注意,只有界面可以被用户过滤。