C# 委托 delegate
delegate <T> 委托名<T>(T x, T y ...)
一、自定义
1、无参
using System; namespace ClassAndIn { internal class Program { static void Main(string[] args) { Dele dele = new Dele(M); dele += M; dele(); } static void M() { Console.WriteLine("Hello, World"); } } delegate void Dele(); }
2、含参
using System; namespace ClassAndIn { internal class Program { static void Main(string[] args) { Dele dele = new Dele(Add); int result = dele(10, 20); Console.WriteLine(result); } static int Add(int x, int y) { return x + y; } } delegate int Dele(int a, int b); }
三、接口委托
using System; namespace ClassAndIn { internal class Program { static void Main(string[] args) { Dele<int> dele1 = new Dele<int>(Add); int result = dele1(10, 40); Console.WriteLine(result); Dele<double> dele2 = new Dele<double>(Mul); double retslt1 = dele2(20, 30); Console.WriteLine(retslt1); } static int Add(int x, int y) { return x + y; } static double Mul(double x, double y) { return (x * y); } } delegate T Dele<T> (T a, T b); }