什么是委托? 简单的理解就是就是叫你女盆友帮你去做饭(先定义你自己为委托,你女朋友为某个方法(事件),然后通过你去调用她),这就体现了委托的关系(你委托她);
委托使用细节 1.委托可以当做是一个类,他跟类同级,所以不能定义在类方法下面可以与类同级,也可以写在类外边(命名空间下)写在类外相当于“全局变量”,定义在类下面,其他类的方法不能委托; 2.要使用委托,委托与方法 的参数类型,参数个数,返回值类型都必须相同不然2者不能产生关系 如下:
// 示例 public delegate int show(int x); //委托; static int square(int x) => x * x; //此方法与下方法对等 //static int Show(int x) { // return x + x; // } ; 委托与事件的区别 1.事件是放在类里面的,委托不能; 2.事件在外部不能直接掉用 (委托可以) 3.委托是一种数据类型,而事件可以看为是dalegate里对委托的一种封装 4.事件是通过+=和-=来赋值,而委托则是 =; 不要把事件与委托记混了。举个简单委托的例子,如下
//示例 using System; using System.Security.Cryptography.X509Certificates; namespace 委托2 { public delegate int show(int x); //委托 放在外面为全局变量 class Program { static int square(int x) => x * x; //此处省略了 return; static void Main(string[] args) { int[] v = { 1,3,3}; show a = square; //为委托注册方法 Util.Show(v,a); foreach (int i in v) { Console.WriteLine(i); } } class Util { public static void Show(int[] valus,show d){ //show方法执行时,同时在调用另一个方法(用委托做形参) for(int i= 0; i < valus.Length; i++) { valus[i] = d(valus[i]); //d扩号中为委托所带参数的值,用来调用委托方法在赋值给values[i]; } } } }小白的简易理解,如有错误,请多包涵