【C#基础知识】——初识委托(delegate)

委托是C#语言很重要的一个知识点,在后续的编码中会大量使用到。
委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。
委托是事件的基础,匿名方法,Lambda表达式都是建立在委托的基础之上的。


  • 说白了委托就是可以把方法当做(方法的)参数来传递。

委托是引用类型,在使用委托时首先要定义–>声明–>实例化–>作为参数传递给方法–>使用委托。


委托语法:

访问修饰符 delegate 返回值类型 委托名称(参数列表);

public delegate void MyDelegate(int a, int b);

委托声明的关键字:delegate。

委托声明的位置可以在类外,也可以在类内。

声明的委托要和绑定的方法的“签名”保持一直;(签名指的是
方法的返回值类型,以及参数列表的类型)


加减乘除事例:

 /// <summary>
 /// 声明一个委托
 /// </summary>
 public delegate void CalcDelegate(int numA, int numB);

 public class Calc : MonoBehaviour
    {

        private void Start()
        {
            int numA = 10;
            int numB = 2;

            // 传入和委托类型相同签名的方法
            MyCalc(numA, numB, JiaFa);
        }

        /// <summary>
        /// 把方法当做(方法的)参数来传递,a和b是int 类型,而方法的类型就是委托类型,
        /// </summary>
        private void MyCalc(int a,int b,CalcDelegate calcDel)
        {
            calcDel(a, b);
        }
        private void JiaFa(int a, int b)
        {
            Debug.Log(string.Format("{0} + {1} = {2}", a, b, a + b));
        }
        private void JianFa(int a, int b)
        {
            Debug.Log(string.Format("{0} - {1} = {2}", a, b, a - b));
        }
        private void ChengFa(int a, int b)
        {
            Debug.Log(string.Format("{0} * {1} = {2}", a, b, a * b));
        }
        private void ChuFa(int a, int b)
        {
            Debug.Log(string.Format("{0} / {1} = {2}", a, b, a / b));
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值