expr-body",&ldquo"/> expr-body",&ldquo">

Maison >développement back-end >Tutoriel C#.Net >À propos des instances de délégué dans .net 3.5

À propos des instances de délégué dans .net 3.5

零下一度
零下一度original
2017-06-23 16:05:191540parcourir

.net 3.5 a introduit les expressions Linq et lambda, de sorte que la création de délégués est devenue plus simple et plus élégante.

Délégués dans .net 3.5

Après l'introduction des expressions lambda, il n'est plus nécessaire d'utiliser des méthodes anonymes, ce qui rend la création de délégués plus simple et plus élégante. En fait, si l'expression lambda est introduite en premier, il n'y aura pas de méthode anonyme.

Les expressions Lambda sont écrites en C# sous la forme "arg-list => expr-body". Le côté gauche du symbole "=>" est la liste des paramètres de l'expression, et le côté droit est la liste des paramètres de l'expression. côté est l’expression corps (corps). La liste des paramètres peut contenir de 0 à plusieurs paramètres, séparés par des virgules.

 1 namespace DelegateDemo 2 { 3     //声明委托 4     public delegate void MyDel(string arg1, string arg2); 5  6     class Program 7     { 8         static void Main(string[] args) 9         {10             //.net 3.5中的委托11 12             //创建委托,使用lambda表达式代替匿名方法13             MyDel myDel = (string arg1, string arg2) =>14             {15                 Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));16             };17 18             //调用委托19             myDel("aaa", "bbb");20 21             Console.ReadKey();22         }23     }24 }

Omettez le type de paramètre

car le compilateur peut connaître le type du paramètre délégué à partir de la déclaration du délégué (cette fonctionnalité est appelé déduction de type), nous sommes donc autorisés à omettre le type de paramètre, le code est donc simplifié comme suit.

1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) =>3 {4     Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));5 };

Remarque, s'il n'y a qu'un seul paramètre, vous pouvez également omettre les parenthèses autour du type de paramètre.

Utilisez des instructions pour remplacer des expressions

Étant donné que les expressions lambda permettent au corps de l'expression d'être une instruction ou un bloc d'instructions, donc lorsque le corps de l'expression n'a qu'une seule instruction, vous pouvez remplacer le bloc d'instructions par un déclaration pour poursuivre la simplification. Le code suivant :

1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) => Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn