根据MSDN documentation,它表示除了可以理解的其他目的之外,它对以下目的有用:
最好封装一个静态方法。
有人可以用一个例子来帮助我理解这些用法吗?
答案 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