delegate (Referenční dokumentace jazyka C#)
Prohlášení o typ delegát je podobný metoda signatura.Má hodnotu vrácení a libovolný počet parametrů typu:
public delegate void TestDelegate(string message);
public delegate int TestDelegate(MyType m, long num);
A delegate je typ odkazovat se , který slouží k zapouzdření pojmenovanou nebo anonymní metoda.Delegáti jsou podobné ukazatele funkce v jazyce C++; Delegáti se však zajišťující bezpečnost typů a zabezpečení.Aplikace delegátů, viz Delegáti a Generic Delegáti.
Poznámky
Delegáti jsou základem pro události.
delegát lze vytvořit instanci pomocí přidružení buď s pojmenovanou nebo anonymní metoda.Další informace naleznete v tématu s názvem metody a Anonymní metody.
delegát musí být vytvořena pomocí metoda nebo lambda výraz, který má kompatibilní návratový typ a vstupní parametry.Další informace o stupeň odchylku, která je povolena metodasignaturaviz Odchylky v delegátech (C# and Visual Basic). Pro použití s anonymní metody delegát a kód se s ním související jsou deklarovány společně.V této části jsou popsány oba způsoby konkretizujete delegátů.
Příklad
// Declare delegate -- defines required signature:
delegate double MathAction(double num);
class DelegateTest
{
// Regular method that matches signature:
static double Double(double input)
{
return input * 2;
}
static void Main()
{
// Instantiate delegate with named method:
MathAction ma = Double;
// Invoke delegate ma:
double multByTwo = ma(4.5);
Console.WriteLine("multByTwo: {0}", multByTwo);
// Instantiate delegate with anonymous method:
MathAction ma2 = delegate(double input)
{
return input * input;
};
double square = ma2(5);
Console.WriteLine("square: {0}", square);
// Instantiate delegate with lambda expression
MathAction ma3 = s => s * s * s;
double cube = ma3(4.375);
Console.WriteLine("cube: {0}", cube);
}
// Output:
// multByTwo: 9
// square: 25
// cube: 83.740234375
}
Specifikace jazyka C#
Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Typy odkazů (Referenční dokumentace jazyka C#)
Delegáti (Průvodce programováním v C#)
Události (Průvodce programováním v C#)
Delegáti s pojmenovanými vs. anonymními metodami (Průvodce programováním v C#)
Anonymní metody (Průvodce programováním v C#)