Académique Documents
Professionnel Documents
Culture Documents
StaticAndPublicExample.chaine("hello");
Console.ReadLine();
}
}
Example Public/Static methods
namespace ConsoleApp1
{ internal class DelegateTest
{
public int sum(int a, int b)
{ return (a + b);}
public static void chaine1(string str)
{Console.WriteLine(str);}
static void Main(string[] args)
{DelegateTest dt = new DelegateTest();
int resSum = dt.sum(10,20);
Console.WriteLine(resSum);
DelegateTest.chaine1("hello");
Console.ReadLine();}
}
}
Pourquoi on utilise Delegate ?
ØOn utilise delegate pour appeler touts types de méthodes que se soit
static ou public.
ØOn utilise delegate parce que c’est un moyen sécuriser de faire appel
à des méthodes.
Comment on utilise Delegate
Afin d’appeler une méthode en utilisant delegate, trois étapes à suivre:
1) Définition de Delegate:
[<modifier>] delegate void|Type <delagatefunctName>([<parameter list>])
2) Instanciation de Delegate:
on passe le nom de la fonction a appeler comme paramètre à delegate (delegate détient une référence
de la méthode).
ü Si la méthode est public:
<delagatefunctName> <InstanceName>=new <delagatefunctName> <classInstanceName.funcName>
üSi la méthode est static
<delagatefunctName> <InstanceName>=new <delagatefunctName> <funcName>
3) Appelation de Delegate:
soit un appel en utilisant le nom d’objet avec les paramettre(methode habituelle) soit on utilise
<objectName>. Invoke ([<parameter list>])
Comment définir Delegate:Application
1) définir delegate: [<modifier>] delegate void|Type <functionName>([<parameter list>])
Ø Example
public delegate int sumDelegate(int x, int y)
public int mySum(int a, int b)
public delegate void chaineDelegate(string myStr)
public static void chaine1(string str)
Il faut définir delegate sous NameSpace, on peut aussi la définir sous la class sa devient nested méthode
(ce n’est pas conseiller).
3) Appelation de delegate:
1)
Anonymous Méthodes
Console.WriteLine(resChaine);
Console.ReadLine();}
}
}
Anonymous méthode : Application
namespace AnonymousMethod
{
public delegate string chaineDelegate(string myStr)
internal class DelegateTest
{
static void Main(string[] args)
Console.WriteLine(resChaine);
Console.ReadLine();}
}
}
Conclusion d’Anonymous méthode
Console.WriteLine(resChaine);
Console.ReadLine();}
}
}
Lambda Expression: Application
namespace AnonymousMethod
{
public delegate string chaineDelegate(string myStr)
internal class DelegateTest
{
static void Main(string[] args)
Console.WriteLine(resChaine);
Console.ReadLine();}
}
}
Génériques Delegate
La définition de delegate n’est pas obligatoire si on utilise les génériques
delegate comme suite :