简易了解C#中的委托

简易了解C#中的委托

  1. 什么是委托?
    简单的理解就是就是叫你女盆友帮你去做饭(先定义你自己为委托,你女朋友为某个方法(事件),然后通过你去调用她),这就体现了委托的关系(你委托她);

  2. 委托使用细节
    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. 委托与事件的区别
    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];
            }
        }
        
    }

}

小白的简易理解,如有错误,请多包涵

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值