Qu'est-Méthode<ClassName> signifie?
J'ai vu cette syntaxe une couple de fois maintenant, et ça commence à m'inquiéter,
Par exemple:
iCalendar iCal = new iCalendar();
Event evt = iCal.Create<Event>();
Vous devez vous connecter pour publier un commentaire.
C'est une Méthode Générique, Créer est déclarée avec le type de paramètres, et de vérifier ce lien pour plus d'informations:
C'est l'appel d'une méthode générique - donc dans votre cas, la méthode peut être déclarée comme ceci:
Vous pouvez spécifier le type d'argument dans les crochets, comme vous le feriez pour la création d'une instance d'un type générique:
T-il m'aider?
Une différence entre les génériques méthodes et générique types est que le compilateur peut essayer de déduire le type d'argument. Par exemple, si votre
Create
méthode ont été à la place:vous pourrait simplement appeler
et le compilateur pourrait en déduire que vous avez voulu dire:
C'est la façon dont vous mentionnez une méthode générique en C#.
Lorsque vous définissez une méthode générique que vous avez un code comme ceci:
Lorsque vous appelez une méthode générique, le compilateur généralement déduit le type de paramètre à partir de la arguments spécifiés, comme dans cet exemple:
Dans cet exemple, si "montableau" est un tableau de chaînes, il va appeler Tableau.ForEach<string>, et si c'est un tableau int, il va appeler Tableau.ForEach<int>.
Parfois, il est impossible pour le compilateur de déduire le type de paramètres (comme dans votre exemple, où il n'y a pas de paramètres à tous). Dans ces cas, vous devez les spécifier manuellement comme ça.
C'est une méthode générique qui implémente l' Méthode De Fabrique modèle.
Cette syntaxe est tout simplement l'application de médicaments génériques à une méthode. Il est généralement utilisé pour les scénarios où vous souhaitez contrôler le type de retour de la méthode. Vous trouverez ce genre de syntaxe beaucoup dans le code qui utilise un Cio cadre.