首页 > 其他分享 >委托

委托

时间:2023-02-26 20:34:55浏览次数:44  
标签:订阅 委托 事件 Func 返回值 方法

委托和事件

  • 委托
    • 委托是一个类型安全的函数指针,表示对具有特定参数列表和返回类型的方法的引用(引用类型)
    • 使用场景:用于将方法作为参数传递给其他方法,是对方法的多态 例如事件处理程序
    • 委托允许将方法作为参数进行传值或者回调方法
    • 委托可以链接在一起,多播委托(类似于函数链表),例如一个事件调用多个方法
    • 方法不必与委托签名完全匹配(协变)
  • 委托使用
    • 委托声明和实例化
      • 声明方法和委托
        img
      • 实例化委托
        实例化时是一个对象,因此支持作为实参传递
        img
    • 委托多播(+ - += -=)
      • *假设委托存在返回值,默认是返回最后方法的返回值,不会为你的返回值进行计算(只反值不计算
        img
  • Action、Func、Predicate
    • Action和Func
      • Action(不需要返回值),Func(需要返回值)
        img
      • Predicate所引用的方法接收一个或者多个泛型参数并且返回一个 bool 值,你可以假定它等价于 Func<T,bool>,Predicate 常用于对 collection 进行一组条件检索。
        img
  • 事件
    • 事件是基于委托,为委托提供一种发布/订阅机制,声明事件需要event(特特殊的委托)
    • 发布者确定何时引发事件,订阅确定执行何种操作来响应事件
    • 一个事件可以有多个订阅,一个订阅可以处理来自几个发布者的多个事件
    • 没有订阅者的事件永远不会触发
  • 链接:

标签:订阅,委托,事件,Func,返回值,方法
From: https://www.cnblogs.com/blackamon/p/17157345.html

相关文章

  • [Unity/C#]委托+协程,依次启动多播委托里协程的方法
    1//委托的定义2publicdelegateIEnumeratorActiveDuringTurn(Player[]otherplayers);34publiceventActiveDuringTurnUEvent;567//依次启动协程......
  • 委托示例代码
    1usingSystem;23namespaceConsoleApp14{5classProgram6{7staticvoidMain(string[]args)8{9ShengC......
  • C# 委托原理刨析,外加和事件对比
    什么是委托委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。在实例化委托时,你可以将其实例与任何具有兼容参数和返回类型的方法进行绑定。你可以通过......
  • C#/.net面试知识点总结(三)【委托】
    委托是什么?事件是不是一种委托?委托可以把一个方法作为参数带入另一个方法。委托可以理解为指向一个函数的指针。C#的委托是CTS(公共类型系统)规定的5种类型之一。(类类型......
  • Kotlin属性委托
    业务定义对于属性,我们可以读取(get)和赋值(set),在Java中会定义get和set方法来操作属性,Kotlin的属性建议直接操作,一些业务的要求会对属性有额外的功能需求,在Java中会在get......
  • 五分钟重温C# 委托,匿名方法,Lambda,泛型委托,表达式树
    五分钟重温C#委托,匿名方法,Lambda,泛型委托,表达式树翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 1人赞同了该文章第一分钟:委托有......
  • C# 委托
    publicTQuery<T>(intid)whereT:BaseModel{Typetype=typeof(T);stringcolumnString=string.Join(",",type.GetProper......
  • 异步函数(async)的委托类型
    例如,某个委托类型如下:publicdelegateTaskRequestDelegate(HttpContextcontext);根据上面的签名,定义的两个 “示例” 函数如下:【传统的】publicTaskMyTestA(H......
  • 事件冒泡、事件捕获、事件委托
    一、事件冒泡和捕获运行条件:当一个事件发生在具有父元素的的元素上时,现代浏览器根据事件添加时的设置来执行(冒泡或者捕获)通过addEventListener()的第三个属性来设置事......
  • .NET学习系列之委托
    委托(delegate)委托是一种知道如何调用方法的对象。委托类型定义了一种委托实例(delegateinstance)可以调用的方法。具体来说,它定义了方法的返回类型(returntype)和参数类型(p......