Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet article montre comment mettre en œuvre vos propres méthodes d'extension pour n'importe quel type .NET. Le code client peut utiliser vos méthodes d'extension. Les projets clients doivent faire référence à l'assemblage qui les contient. Les projets clients doivent ajouter une directive using qui spécifie l'espace de noms dans lequel les méthodes d'extension sont définies.
Pour définir et appeler la méthode d'extension :
using
pour spécifier l’espace de noms qui contient la classe de méthode d’extension.Notes
Le premier paramètre n'est pas spécifié par le code appelant car il représente le type sur lequel l'opérateur est appliqué, et le compilateur connaît déjà le type de votre objet. Vous devez fournir des arguments uniquement pour les paramètres 2 à n
.
L’exemple suivant implémente une méthode d’extension nommée WordCount
dans la classe CustomExtensions.StringExtension
. La méthode opère sur la classe String, qui est spécifiée comme premier paramètre de méthode. L’espace de noms CustomExtensions
est importé dans l’espace de noms d’application, et la méthode est appelée à l’intérieur de la méthode Main
.
using CustomExtensions;
string s = "The quick brown fox jumped over the lazy dog.";
// Call the method as if it were an
// instance method on the type. Note that the first
// parameter is not specified by the calling code.
int i = s.WordCount();
System.Console.WriteLine("Word count of s is {0}", i);
namespace CustomExtensions
{
// Extension methods must be defined in a static class.
public static class StringExtension
{
// This is the extension method.
// The first parameter takes the "this" modifier
// and specifies the type for which the method is defined.
public static int WordCount(this string str)
{
return str.Split(new char[] {' ', '.','?'}, StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
La résolution des surcharges privilégie les méthodes d'instance ou statiques définies par le type lui-même par rapport aux méthodes d'extension. Les méthodes d'extension ne peuvent pas accéder aux données privées de la classe étendue.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Appeler des méthodes à partir de la bibliothèque de classes .NET en utilisant C# - Training
Utilisez les fonctionnalités de la bibliothèque de classes .NET en appelant des méthodes qui retournent des valeurs, acceptent des paramètres d’entrée, etc.