unity3d中事件和委托的区别
展开全部
一、事件的定义:[访问修饰符] event 委托名 事件名;(事件本质就是对消息的封装,用作对象之间的通信;发送方叫事件发送器,接收方叫事件接收器; )
eg:
例如:自己创建一个控件,要完成3个步骤,定义一个事件在步骤完成时候触发一下,调用者在调用的时候就知道程序运行到哪一个步骤了。
二、委托
委托相当于一个数据类型,委托在这里定义了MakeGreeting可以代表的方法的类型,即函数参数和返回值类型与委托的一致,在最后调用GreetPeople()函数时EnglishGreeting变成GreetingDelegate类型的数据。
委托GreetingDelegate 和 类型 string 的地位一样,都是定义了一种参数类型,但是委托不同于string的一个特性:可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法。(如上,第一次绑定方法是用"=",因为delegate1现在是空的,之后用"+=",也可以使用"-="的方式取消对某一个方法的绑定。)
eg:
例如:自己创建一个控件,要完成3个步骤,定义一个事件在步骤完成时候触发一下,调用者在调用的时候就知道程序运行到哪一个步骤了。
二、委托
委托相当于一个数据类型,委托在这里定义了MakeGreeting可以代表的方法的类型,即函数参数和返回值类型与委托的一致,在最后调用GreetPeople()函数时EnglishGreeting变成GreetingDelegate类型的数据。
委托GreetingDelegate 和 类型 string 的地位一样,都是定义了一种参数类型,但是委托不同于string的一个特性:可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法。(如上,第一次绑定方法是用"=",因为delegate1现在是空的,之后用"+=",也可以使用"-="的方式取消对某一个方法的绑定。)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询