在C#中,可以通过使用泛型来定义委托,以实现更灵活和通用的委托类型。泛型委托的定义方式与普通委托类似,只是在声明委托时使用泛型类型参数。
例如,定义一个泛型委托类型:
public delegate T MyDelegate<T>(T param);
然后可以使用这个泛型委托类型来创建委托实例,如下所示:
public class Program
{
public static int Add(int a)
{
return a + 10;
}
public static void Main()
{
MyDelegate<int> myDelegate = Add;
Console.WriteLine(myDelegate(5)); // 输出 15
}
}
在上面的示例中,我们定义了一个返回类型为T、接受一个T类型参数的泛型委托MyDelegate
使用泛型委托可以让我们更灵活地定义委托类型,同时能够避免重复定义多个相似的委托类型。