【发布时间】:2014-01-02 12:48:04
【问题描述】:
在 C# 中,委托的行为更像是一个函数指针列表,因此我们可以通过委托调用具有相同方法签名的方法列表。
在初始赋值之后,我们可以使用 +=(加法赋值)和 -=(减法赋值)从委托中添加或减去方法。
说,我有两种方法。
public static void Method1(string message){
// ...
}
public static void Method2(string message){
// ...
}
现在,我声明一个委托类型,
public delegate void Del(string message);
如果我想依次执行 Method1、Method2 和 Method1,我可以像这样创建一个委托。
Del delList = Method1;
delList += Method2;
delList += Method1;
然后,稍后在程序中,如果我从中删除 Method1,则删除 Method1 的哪个位置?有什么规则可以管理吗?
我相信更好、更易读的方法是创建一个新委托并按顺序添加您想要执行的方法,而不是更改现有的方法。我只是好奇-= 运算符是如何为 C# 代表实现的。
【问题讨论】: