Duplicate possible:
What is Delegate?C question # délégué
En C#, un délégué peut être vu à la fois comme nom de la méthode et le nom du type. Est-ce que je comprends bien?
comme "doShow [] = new articles doShow [3];" dowShow est un nom de type. comme "doShow (nouvelle Class1() ....)" dosShow est un nom de méthode/
Je reçois cette conclusion en lisant ici les codes:
public class TestDelegate
{
// define a datatype as a method taking a string returning void
public delegate void doShow(String s);
public static void Main(string[] args)
{
// make an array of these methods
doShow[] items = new doShow[3];
items[0] = new doShow(new Class1().show);
items[1] = new doShow(new Class2().display);
items[2] = new doShow(Class3.staticDisplay);
// call all items the same way
for(int i = 0; i < items.Length; i++) {
items[i]("Hello World");
}
}
}
penser à elle comme un type qui décrit un procédé; pas une méthode réelle. Le délégué dit que la méthode * which * est appelée (ou une méthode anonyme). Autrement dit, on pourrait dire que c'est un pointeur de fonction fortement typé. – vcsjones
En termes simples, vous pouvez supposer que les délégués sont des conteneurs pour les signatures de méthodes. C'est une sorte de lien invisible avec la méthode que vous souhaitez invoquer. – AbrahamJP