代表快速回顾

代表们

在本文中,我将简要介绍有关委托的内容。 关于代表的一些要点。 本文仅适用于已认识代表的人员,这将是快速回顾,而不是详细介绍。

委托很简单就是对象的一种特殊类型,委托仅包含方法的详细信息。

理解委托的一种好方法是将委托视为一种为方法签名命名的东西。

句法:

公共代表void voidOperation(uint x);

在这里,我们定义了一个名为voidOperation的委托,并且我们已经表明,该委托的每个实例都可以持有对采用一个单位参数并返回void的方法的引用。 了解委托的关键点是它们非常类型安全。 在定义委托时,我们必须提供将要表示的方法签名的完整细节。

与代表有关的一些重要要点是:

1)就像回调函数

2)功能指针

3).Net委托是类型安全的。

4)我们可以在定义类的任何地方定义一个委托。 在另一个类内部或任何类外部,并在名称空间中作为顶级对象。

5)定义一个委托就是定义一个新类。

6)委托被实现为派生自类System.MultiCastDelegate的类,该类派生自基类System.Delegate。

7)定义委托后,我们可以创建它的实例,以便可以使用它存储特定方法的详细信息。

8)类实例被称为对象,与委托的情况一样,委托实例被称为委托本身。

9)C#中的委托在语法上始终采用单参数构造函数,该参数是委托将引用的方法。 此方法必须与我们最初定义委托的签名匹配。

10)委托的一个特征是在确保被调用方法的签名正确的程度上是类型安全的。 但是,有趣的是,它们并不关心该方法针对哪种对象,甚至不在乎该方法是静态方法还是实例方法。

11)给定委托的实例可以引用任何类型的任何对象上的任何实例或静态方法,只要该方法的签名与委托的签名匹配即可。

12)匿名方法:

委托字符串委托测试(字符串val); //宣言

委托anonyDel = delegate(string param)//这里是//匿名方法。

{

param + =“巴拉特·雷迪VasiReddy”;

返回参数

} //没有名称赋予语句集

13)我们可以将方法组合在一起组成一个数组,以便可以在循环中调用多个方法。

委托double DoubleOP(double x);

DoubleOp []操作= {新DoubleOp(MethodName1),新DoubleOp(MethodName2)};

注意:对于委托数组,所有数组值都应具有相同的方法签名。

14)MultiCast代表:

委托可以包装多个方法。 这样的委托被称为多播委托。 如果调用了多播委托,它将依次依次调用每个方法。 为此,委托人签名必须返回空白。 如果编译器看到一个返回了void的委托,它会自动假定我们是一个多播委托。

多播委托是从System.MultiCastDelegate派生的类,而该类又从System.Delegate派生。 System.MultiCastDelegate具有其他成员,以允许将方法调用链接到一个列表中。

DoubleOp operation1 =新的DoubleOp(methodOperations.MultiplyByTwo);

DoubleOp operation2 =新的DoubleOp(MathOperations.Square);

DoubleOp操作=操作1 +操作2;

操作(值); //这将执行两个功能。

注意:如果使用的是多播委托,则应注意,链接到同一委托的方法的调用顺序在形式上是不确定的。 因此,我们应该避免编写依赖于以任何特定顺序调用这些方法的代码。

谢谢和Regs

巴拉斯·雷迪VasiReddy

From: https://bytes.com/topic/net/insights/669209-quick-review-delegates

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值