Maison >développement back-end >Tutoriel C#.Net >Méthodes d'extension C#
Selon le sens littéral de l'extension, les méthodes supplémentaires sont appelées méthodes d'extension C# à l'aide desquelles les méthodes supplémentaires peuvent être ajoutées sans apporter de modifications ni hériter ou restructurer la structure, la classe ou l'interface d'origine et nous pouvons ajouter de telles méthodes d'extension. aux classes personnalisées créées par nos soins, aux classes du framework .NET ou aux classes de tiers ou d'interfaces et ces méthodes d'extension sont accessibles tout au long du flux du programme en incluant les espaces de noms dans lesquels elles sont définies et c'est une méthode statique d'un type spécial défini dans une classe statique.
Définition de l'espace de noms, de la classe et de la méthode d'extension.
Syntaxe :
namespace namespace_name { public static class class_name { public static bool extension_method_name(parameters_list) { //Blocks of code } } }
Où namespace_name est le nom de l'espace de noms dans lequel la méthode d'extension est définie.
Class_name est le nom de la classe statique dans laquelle la méthode d'extension est définie.
Extension_method_name est le nom de la méthode d'extension.
La liste des paramètres est la liste des paramètres dont le premier paramètre est le type de l'opérateur sur lequel la méthode va opérer et qui aura un préfixe ce mot-clé.
Vous trouverez ci-dessous les exemples de méthodes d'extension C#
Programme C# pour démontrer la méthode Extension dans un programme pour comparer deux entiers :
Code :
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to compare two integers is defined public static bool extensionmethodname(this intstr, intval) { return str>val; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { intstri = 565; //extension method defined in another static class is called here bool z = stri.myExtensionMethod(200); Console.WriteLine("The result of the comparison is: {0}", z); Console.ReadLine(); } } }
Sortie :
Explication : Dans le programme ci-dessus, un espace de noms appelé check est défini. Ensuite, une classe statique appelée classe de méthode d'extension est définie dans laquelle la méthode d'extension permettant de comparer deux entiers est définie. Ensuite, une autre classe appelée check1 est définie dans laquelle la méthode d'extension peut être ajoutée même si elle est définie dans une classe différente mais relève du même espace de noms. La méthode d'extension renvoie le résultat de la comparaison de deux entiers. Le résultat de l'instantané est tel qu'indiqué dans l'instantané ci-dessus.
Programme C# pour démontrer la méthode Extension dans un programme pour connaître la longueur d'une chaîne :
Code :
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to find out the length of a string is defined public static intextensionmethodname(this string str) { return str.Length; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { string stri = "ShobhaShivakumar"; //extension method defined in another static class is called here int z = stri.extensionmethodname(); Console.WriteLine("The length of the string obtained by using extension method is: {0}", z); Console.ReadLine(); } } }
Sortie :
Explication : Dans le programme ci-dessus, un espace de noms appelé check est défini. Ensuite, une classe statique appelée classe de méthode d'extension est définie dans laquelle la méthode d'extension permettant de calculer la longueur de la chaîne qui lui est passée en paramètre est définie. Ensuite, une autre classe appelée check1 est définie dans laquelle la méthode d'extension peut être ajoutée même si elle est définie dans une classe différente mais relève du même espace de noms. La méthode d'extension renvoie la longueur de la chaîne qui lui est passée en paramètre comme résultat. Le résultat de l'instantané est tel qu'indiqué dans l'instantané ci-dessus.
Code :
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to add two numbers is defined public static intextensionmethodname(this intstr, intval) { return str+val; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { intstri = 100; //extension method defined in another static class is called here int z = stri.extensionmethodname(200); Console.WriteLine("The result of addition of two numbers obtained by using extension method is: {0}", z); Console.ReadLine(); } } }
Sortie :
Explication : Dans le programme ci-dessus, un espace de noms appelé check est défini. Ensuite, une classe statique appelée classe de méthode d'extension est définie dans laquelle la méthode d'extension permettant d'ajouter deux nombres qui lui sont passés en paramètre est définie. Ensuite, une autre classe appelée check1 est définie dans laquelle la méthode d'extension peut être ajoutée même si elle est définie dans une classe différente mais relève du même espace de noms. La méthode d'extension renvoie le résultat après avoir ajouté les deux nombres.
Dans ce didacticiel, nous comprenons le concept des méthodes d'extension C# à travers la définition, sa syntaxe et l'utilisation d'exemples de programmation et de leurs sorties.
Ceci est un guide des méthodes d'extension C#. Nous discutons ici de l'introduction aux méthodes d'extension C# et de leur fonctionnement ainsi que de ses exemples et de l'implémentation du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus –
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!