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

来源:互联网 发布:淘宝销量怎么查看 编辑:程序博客网 时间:2024/06/03 20:46

委托是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));        }    }
原创粉丝点击