operátor delegáta (odkaz C# )delegate operator (C# reference)

Operátor delegate vytvoří anonymní metodu, kterou lze převést na typ delegáta:The delegate operator creates an anonymous method that can be converted to a delegate type:

Func<int, int, int> sum = delegate (int a, int b) { return a + b; };
Console.WriteLine(sum(3, 4));  // output: 7

Poznámka

Počínaje C# 3, lambda výrazy poskytují stručnější a expresivní způsob, jak vytvořit anonymní funkce.Beginning with C# 3, lambda expressions provide a more concise and expressive way to create an anonymous function. Pomocí operátoru => vytvořte výraz lambda:Use the => operator to construct a lambda expression:

Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4));  // output: 7

Další informace o funkcích výrazů lambda, například zachycení vnějších proměnných, naleznete v tématu Lambda expressions.For more information about features of lambda expressions, for example, capturing outer variables, see Lambda expressions.

Při použití delegate operátoru můžete vynechat seznam parametrů.When you use the delegate operator, you might omit the parameter list. Pokud tak učiníte, vytvořená anonymní metoda může být převedena na typ delegáta s libovolným seznamem parametrů, jak ukazuje následující příklad:If you do that, the created anonymous method can be converted to a delegate type with any list of parameters, as the following example shows:

Action greet = delegate { Console.WriteLine("Hello!"); };
greet();

Action<int, double> introduce = delegate { Console.WriteLine("This is world!"); };
introduce(42, 2.7);

// Output:
// Hello!
// This is world!

To je jediná funkce anonymnímetody, která není podporována lambda výrazy.That's the only functionality of anonymous methods that is not supported by lambda expressions. Ve všech ostatních případech lambda výraz je upřednostňovaný způsob, jak psát vřádkový kód.In all other cases, a lambda expression is a preferred way to write inline code.

Klíčové delegate slovo můžete také použít k deklarování typu delegáta.You also use the delegate keyword to declare a delegate type.

specifikace jazyka C#C# language specification

Další informace naleznete v části Anonymní výrazy funkcí ve specifikaci jazyka C#.For more information, see the Anonymous function expressions section of the C# language specification.

Viz takéSee also