阐明代表C#

时间:2018-06-23 20:43:57

标签: c# delegates

我对C#天真,试图理解Delegate。我读过几篇文章描述委托为

  • 类型安全的函数指针
  • 用于定义回调函数(我对回调的理解是-有返回值的方法)
  • 在单个事件上调用多种方法

由于C#是面向对象的,并且每个对象都可以与真​​实世界的实体相关,所以我相信真实世界中的代表是“来自一个国家/团队/组织的人”

  

特朗普说,朝鲜代表将递交金正恩关于峰会的信。   微软的代表讨论了Github的收购。

因此,委托将具有与委托所引用的基础方法相同的参数和返回类型。根据{{​​3}},

  1. 代表允许将方法作为参数传递。 - 我们还可以将方法作为参数传递给其他方法。 Console.WriteLine(foo.ToString());
  2. 委托可用于定义回调方法。 - 带有return关键字的方法作为委托执行,因为委托只是被调用方和调用方方法之间的桥梁。
  3. 代表可以链接在一起;例如,多种方法可以 在单个事件上被调用。 - 因为方法也可以链接。 Caller method(){// Callee method1(); Callee method2();// Callee method3();}也可以从单个事件中获取

我想,当我们从源到目标复制/剪切并粘贴文件/文件夹时,我们看到代表在后台工作。因为文件已从源移动到目标,但是进度栏窗口如何了解当前的文件名和要在进度栏中填充的进度量

那么,为什么以及何时使用委托? (由于委托指向具有所需功能才能执行的函数,为什么我不能直接调用函数而不是调用委托?)

PS @所有SO成员/用户-请不要将其标记为重复。

谢谢。

0 个答案:

没有答案