当前位置: 首页 > 网络应用技术

.NET C#高级----委托,乘数委员会,活动

时间:2023-03-07 10:25:55 网络应用技术

  建议打开文章目录以查看,并根据代码的代码示例,执行易于理解

  委托可以通过New实例化,该方法需要一种必须与本委员会的参数和返回值完全匹配的方法。

  当Invoke()时,您需要传递派生的定义

  以下示例中使用的委员会课程:

  添加一个示例方法show():

  调用方法测试:

  结果:

  委托的优势:

  1.代码更稳定,中央控制方法不需要修改

  2.多种情况下所需的执行逻辑不在相同的方法中,减少了局部更改的总体需求。

  3.将重复代码从上到下减少,公共逻辑宠物

  委托场景的建议:

  1.方法内部业务逻辑耦合认真

  2.如果有多种方法,则有许多重复的代码重复副代码重复使用

  需求方案:需要满足多条件和多项解决方案,将来将有更多的公共业务逻辑

  例如:中文说中文,美国人说英语,日语说日语

  以后需求:

  提高公共逻辑:在讲话前举手

  正常的方法是:

  1.根据传递的标识符确定相同方法

  ----缺点:如果您更改要求,则需要更改原始方法,这可能会导致整个方法重新测试。

  ----优点:提高公共逻辑和方便

  2.编写多种方法,然后按需打电话

  ----优点:与第一种方法相比,您只需要添加独立的方法,这不会影响其他功能。

  ----缺点:如果您需要增加公共逻辑,则需要每种方法来制作新代码

  上述两种方法的优点和缺点是显而易见的。委托可以完美地结合上述两个方案的优势,以避免缺点(既不是大量的重复代码,也不是相对稳定的),这很方便以后进行维护。

  代码:

  调用方法:

  结果:

  包装此框,一层将一层包装,并在每次执行时添加一些业务逻辑。要执行的核心业务逻辑在内部框中。内部层由一个一个一个执行。

  报价场景:aop;脱色器

  委托嵌套演示(1)----简单版本:

  戏剧图:

  委托嵌套演示(2)----高级版本(功能):

  您可以在执行方法方法之前和之后自由增加业务逻辑,如下图所示:

  }

  公共抽象类方法attribute:属性{公共摘要mynameisdelegate do(mynameisdelegate mynameisdelegate);};}

  ///

  在执行委员会之前输出日志“);mynameisdelegate.invoke();console.writeline(“执行委员会之后的logAttribute输出”日志);返回mydelegate;}}}}

  ///

  执行之前,logagainattribute在执行“); mynameisdelegate.invoke(); console.writeline(“ logagainattribute输出” log“执行委员会之后”);});返回mydelegate;}}}}}

  结果:

  操作:system.runtime的语句是没有返回值(参数)委托的语句

  Func来自System.Luntimer声明的声明。

  ---- Sprite Bracket中的先前类型参数:输入参数(最多16),最后一个类型参数为返回值

  行动和功能的存在的意义:

  委托的本质是班级,定义多个佣金,实际上是添加了多个类别。使用行动/功能无需每次委员会,我们可以统一委托。

  打破16个限制(尽管不应使用):

  您可以按+=向该委员会添加多个方法,并且在执行委托时,按添加方法的顺序执行委托。您可以通过 - =删除方法 - 它是从后面逐一匹配。如果不匹配,您将不会在没有任何操作的情况下进行任何操作;匹配。

  ----无法删除该实例中的方法,例如:new student()。NoreTurnoparameThodthree等同于每次声明新示例,因此它在上述实例上方不是同一实例。

  ----无法删除lambda表达式,因为Lambada表达式将在底部生成一种方法。

  班上额外:

  示例类:

  转移:

  结果:

  例子:

  结果:

  示例背景:猫尖叫→鼠标逃走了→狗尖叫→孩子哭了(猫尖叫并引起一系列反应)

  解决方案:

  ----依靠太重,责任不仅仅是一个

  ①。多广播委员会----语法的支持以支持两个几乎相同的示例:

  示例A被委托

  示例B是一个事件

  关系:活动是委员会的一个实例(实例是一个特别委员会)。

  差异:事件比委托更安全

  ①。该事件只能在类的内部执行中执行(例如:子类不能在父类中使用该事件,但是可以使用父级的佣金。

  ②。可以将委托直接分配为清除,并且事件不能。

  事件应用程序方案:固定要求时,按顺序执行某个操作时,该事件用于防止其他操作跳过操作方法。

  A。多广播委托----所有方法都由多播+=委托给操作,以使每种方法的责任确保所有方法的稳定性

  使用的类:

  使用Multi -Broadcast委员会致电:

  结果:

  b。事件观察者模式的三个主要要素:

  1.发布者

  2.订户

  3.订阅。

  Winform中的大多数控制事件都具有绑定。ASP.NET MV5的管道处理模型通过中国共产党第19个国会大会完成。

  基于一个的实例添加了事件关键字

  使用的类:

  转移:

  结果:

  ②。面向对象的实现---- - 从程序设计级别定义接口 -

  使用的类:

  转移:

  结果:

  使用的演示类:

  调用方法:

  原始:https://juejin.cn/post/7098140210428379143