J'ai créé un programme factice très simple pour comprendre les délégués et les événements. Dans mon programme ci-dessous, je suis simple d'appeler une méthode. Quand j'appelle une méthode, cinq méthodes sont appelées automatiquement avec l'aide des délégués et des événements. Veuillez prendre connaissance de mon programme et faites-moi savoir où je me trompe ou si je me trompe, car c'est la première fois que j'utilise des délégués et des événements.délégués et événements
using System;
namespace ConsoleApplication1
{
public delegate void MyFirstDelegate();
class Test
{
public event MyFirstDelegate myFirstDelegate;
public void Call()
{
Console.WriteLine("Welcome in Delegate world..");
if (myFirstDelegate != null)
{
myFirstDelegate();
}
}
}
class AttachedFunction
{
public void firstAttachMethod()
{
Console.WriteLine("ONE...");
}
public void SecondAttachMethod()
{
Console.WriteLine("TWO...");
}
public void thirdAttachMethod()
{
Console.WriteLine("THREE...");
}
public void fourthAttachMethod()
{
Console.WriteLine("FOUR...");
}
public void fifthAttachMethod()
{
Console.WriteLine("FIVE...");
}
}
class MyMain
{
public static void Main()
{
Test test = new Test();
AttachedFunction attachedFunction = new AttachedFunction();
test.myFirstDelegate += new MyFirstDelegate(attachedFunction.firstAttachMethod);
test.myFirstDelegate += new MyFirstDelegate(attachedFunction.SecondAttachMethod);
test.myFirstDelegate += new MyFirstDelegate(attachedFunction.thirdAttachMethod);
test.myFirstDelegate += new MyFirstDelegate(attachedFunction.fourthAttachMethod);
test.myFirstDelegate += new MyFirstDelegate(attachedFunction.fifthAttachMethod);
test.Call();
Console.ReadLine();
}
}
}
Qu'est-ce qui ne va pas? vous n'avez pas posé de question – Andrey
Cela me semble être une bonne façon d'utiliser les délégués. Vous pouvez utiliser le sucre syntaxique C# 2.0 et supérieur en remplaçant '+ = new MyFirstDelete (methodName);' avec seulement '+ = nomMéthode;' si vous le souhaitez. Des délégués anonymes sont également à votre disposition. –
@Jesse ... merci .. Je vais utiliser + = methodName :) –