Skip to content

Anonymous functions

Context: Anonymous functions are methods without a name. C# has two kinds: lambda expressions and anonymous methods (using the delegate keyword).

// Anonymous method (pre‑C# 3.0)
Func<int, int> square = delegate(int x) { return x * x; };
// Lambda expression (C# 3.0+)
Func<int, int> squareLambda = x => x * x;

Legacy codebases: Older .NET Framework code often uses anonymous methods where lambdas are not available (C# 2.0).

Example: In WinForms, you might still see button.Click += delegate(object sender, EventArgs e) { ... };.