了解C#中委托的具体用法

时间:2015-11-07 19:51:35

标签: c# delegates

根据MSDN documentation,它表示除了可以理解的其他目的之外,它对以下目的有用:

  1. 一个类可能需要多个方法的实现。
  2. 最好封装一个静态方法。

    有人可以用一个例子来帮助我理解这些用法吗?

1 个答案:

答案 0 :(得分:3)

委托是对方法的引用,您可以将其作为对象传递。

想象一下,拥有一个允许其调用者提供自己逻辑的一部分的方法是多么有用。每个调用者都可以拥有自己的方法,为其方法创建委托(引用),并将其作为参数传递给方法。只要main方法知道要传入的参数(如果有的话),它就可以通过引用(委托)调用该方法。

这是一个简单的例子,特别是你问题中的用法#1:

void RemoveItem(string item, Action preRemoveLogic)
{
   preRemoveLogic(); //we don't know what method this actually points to,
                     //but we can still call it.
   //remove the item
}

void MyCustomLogic()
{
   //do something cool
}

/* snip */
RemoveItem("the item", new Action(MyCustomLogic));
//I can pass a reference to a method! Neat!

Delegates are also very important for making events work in .NET