+ 运算符如何用于合并委托?

2023-11-26

例如:

delegate void SomeDelegate();

SomeDelegate a = new SomeDelegate( () => Console.WriteLine("A") );
SomeDelegate b = new SomeDelegate( () => Console.WriteLine("B") );

SomeDelegate c = a + b;

在最后一行,什么是a + b翻译成?我只是好奇如何在不使用的情况下添加它们+操作员。


http://msdn.microsoft.com/en-us/library/ms173172(v=VS.80).aspx- 搜索添加:

委托在被调用时可以调用多个方法。这是 称为多播。向委托添加额外的方法 方法列表——调用列表——只需要添加两个 使用加法或加法赋值运算符(“+”或 '+=')。例如:

MethodClass obj = new MethodClass(); 
Del d1 = obj.Method1; 
Del d2 = obj.Method2; 
Del d3 = DelegateMethod;

//Both types of assignment are valid. 
Del allMethodsDelegate = d1 + d2; 
allMethodsDelegate += d3;

此时allMethodsDelegate中包含了三个方法 调用列表 — Method1、Method2 和 DelegateMethod。原本的 三名代表 d1、d2 和 d3 保持不变。什么时候 allMethodsDelegate 被调用,所有三个方法都按顺序调用。 如果委托使用引用参数,则传递引用 依次对这三种方法中的每一种进行操作,并且任何更改 一个方法对下一个方法可见。当任何一种方法 抛出一个未在方法内捕获的异常,即 异常被传递给委托的调用者,并且没有后续的 调用调用列表中的方法。

Update

两位代表均来自系统委托您可以使用combine()将两个委托添加在一起的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

+ 运算符如何用于合并委托? 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体

随机推荐

  • 将自定义元数据保存在从 iOS 中的 AVFoundation 获取的图像中

    当我使用以下命令获取图像时 如何在图像中保存自定义元数据AVFoundation framework 我知道我可以访问属性 只要我的图像是UIImage or CIImage但它们的属性似乎彼此不同 即使是同一图像 到目前为止 我像这样访问
  • 无法将 Type 隐式转换为 My Type

    我不确定这是否是协方差和逆变问题 但我无法使其正常工作 这是代码 public interface IDto public class PaginatedDto
  • Brunch:分离供应商和应用程序 javascript

    我从我们的项目供应商和应用程序中制作了两个 javascript 包 我按照建议的方式执行此操作文档 如我的 brunch config js 中的这段代码所示 files javascripts joinTo js vendor js s
  • 如何在Android中像Wifi分析仪应用程序一样绘制图表?

    您好 我正在尝试开发一个现场测试应用程序 我必须检索相邻小区的信号强度等信息 所以我的问题是 如何显示具有不同相邻单元格的图表 X 轴和 Y 轴上的信号强度是实时的吗 一个例子here 我已经获得了 5 或 6 个相邻小区以及每个小区的信号
  • Mac OS X / iOS 中的正则表达式匹配表情符号

    Note 在不支持所包含表情符号的系统上 这个问题可能看起来很奇怪 这是一个后续问题如何从字符串中删除表情符号 我想构建一个正则表达式来匹配可以在 Mac OS X iOS 中输入的所有表情符号 明显的 Unicode 块涵盖了大部分表情符
  • 如何在 MVVM 中使用同一个 ViewModel 拥有多个视图?

    我对 WPF 和 MVVM 都很陌生 在尝试设置DataContext到两个单独视图中的 ViewModel 的同一实例 这是因为
  • 如何在 AngularJS 中关闭浏览器窗口

    我有一个登录表单作为单独的浏览器窗口弹出 一旦 API 验证用户已登录 我如何在 AngularJS 中关闭该登录浏览器窗口 Use window close in window服务 您可以像这样将结果广播到另一个控制器AngularJS
  • 是否可以捕获包含 Windows 7 DWM 缩略图的窗口?

    我开始相信你不能用 Windows API 做任何事 我有两个窗户 其中有一个 DWM 缩略图 我想要做的是 我希望能够将窗口屏幕的缩略图捕获到另一个窗口中 当我使用 bitblt 执行此操作时 除了缩略图之外的所有内容都会被复制 它只是位
  • 在android中画圆[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何使用 Android SDK 在两点之间绘制圆 创建一个位图 然后在其画布上绘制 然
  • Postgresql base64 编码

    我需要将 db 值转换为 base64encode 我试过 select encode cast est name as text base64 from establishments 它显示错误 SQL select encode str
  • 在提交表单之前添加确认提醒

    我有一个表单允许用户从数据库中删除一些数据 我想要一些确认信息以防止意外删除 我想做以下事情 按下提交后 会弹出警告 您确定吗 如果用户点击 是 则运行脚本 如果用户点击 否 则不要提交脚本 如何才能做到这一点 我已经添加了 onSubmi
  • np.array() 和 np.asarray() 有什么区别?

    NumPy 和 NumPy 有什么区别np array and np asarray 我什么时候应该使用其中一种而不是另一种 它们似乎产生相同的输出 The 的定义asarray is def asarray a dtype None or
  • table-header-group 、 table-footer-group 属性在 Chrome 中不起作用

    这是我的代码 http furkan brove net syflm php 当我打印它时 它在 Chrome 中不起作用 我希望它在打印模式下将页眉和页脚放在每一页上 此外 在每个浏览器中 最后一个页脚位于内容的底部 但我希望它位于页面底
  • python中的完全单调插值

    我有一些数据 例如 我想拟合一条可微分的单调曲线 我试过PchipInterpolator类但在一个非常相似的图表上 结果是 这并不单调 如何将单调曲线拟合到这样的数据 以下是另一个类似图表的 y 值示例集 0 11091571190236
  • Xcode 6.3 两次构建所有 swift 文件

    我刚刚升级到 Xcode 6 3 并试图将编译时间减少到可管理的程度 我的项目中有大约 120 个 swift 文件 类 编译需要 2 3 分钟 我的项目还有两个测试目标 UnitTests and AutomatedTests Here
  • Django forms.DateInput 不应用 attrs 字段中给出的属性

    尝试通过 django 的 attrs 说明符应用时 占位符 类未设置表单 日期输入 表格是一个模型表单 并根据docs 采用与 TextInput 相同的参数 但多了一个可选参数 这是代码 widgets my date field fo
  • Javascript 中除法结果的四舍五入

    我正在 Javascript 中执行以下操作 0 0030 0 031 如何将结果四舍五入到任意位数 a 的最大数量是多少var将举行 现代浏览器应该支持一种称为toFixed 这是取自网络的例子 Example toFixed 2 whe
  • 裁剪和缩放 MTLTexture

    我可以创建一个新的吗MTLTexture尺寸w2 h2现有的MTLTexture region x1 y1 w1 h1 PS 我考虑过使用MTLTexture buffer makeTexture但偏移量需要是64字节 为什么 以下是您可以
  • 如何更改 joptionpane 的大小和字体?

    您可以更改 JOptionPane 文本的字体和大小吗 我尝试过 只有当我在该特定的 java 类上 运行文件 时它才有效 如果您启动整个项目 它不会更改字体 我只想更改特定的 JOptionPane 而不是全部 这是代码 UIManage
  • + 运算符如何用于合并委托?

    例如 delegate void SomeDelegate SomeDelegate a new SomeDelegate gt Console WriteLine A SomeDelegate b new SomeDelegate gt