Anonymous methods were introduced into C# 2 as a way of creating delegate instances without having to write a separate method. They can capture local variables within the enclosing method, making them a form of closure.
An anonymous method looks something like:
delegate (int x) { return x * 2; }
and must be converted to a specific delegate type, e.g. via assignment:
Func<int, int> foo = delegate (int x) { return x * 2; };
... or subscribing an event handler:
button.Click += delegate (object sender, EventArgs e) {
// React here
};
For more information, see:
Note that lamdba expressions in C# 3 have almost completely replaced anonymous methods (although they're still entirely valid of course). Anonymous methods and lambda expressions are collectively described as anonymous functions.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…