Mon professeur nous a demandé d'enquêter sur quelle classe d'extension, mais je n'arrive pas à trouver quelque chose sur MSDN ou Google. Toute aide? P>
8 Réponses :
Il n'y a pas de "classe d'extension" dans la terminologie formelle C #. Cela pourrait signifier une classe définissant méthodes d'extension (qui n'est rien de spécial, C'est juste un simple statique code> classe.) p>
une classe qui a Méthodes d'extension . P>
Les méthodes d'extension vous permettent de "ajouter" Méthodes pour les types existants sans créer un nouveau type dérivé, recompiler ou modifier autrement le type d'origine. Méthodes d'extension sont un type particulier de méthode statique, mais ils sont appelés comme s'ils étaient méthodes d'instance sur le type étendu. Pour le code client écrit en C # et Visual Basic, il n'y a pas d'apparence différence entre appeler un méthode d'extension et les méthodes qui sont en fait définis dans un type. P> blockQuote>
Techniquement une "classe d'extension" n'est rien. Dans le Vernaculaire, il pourrait être utilisé par une personne pour se référer à une classe conçue pour stocker Méthodes d'extension . Les méthodes d'extension sont des méthodes utilisées pour ressembler à des méthodes d'instance d'une classe, mais qui sont des méthodes véritablement statiques dans une classe statique fournie pour améliorer et encapsuler certaines fonctionnalités. Ils sont particulièrement utiles lorsque vous essayez d'étendre certaines fonctionnalités sur un type que vous ne pouvez pas modifier directement et d'ajouter une méthode à. De plus, ils sont souvent utilisés avec des types génériques (en particulier dans le cadre .NET 3.5) pour étendre la fonctionnalité en utilisant les procédés fournis par une interface spécifique. P>
Je ne sais pas que la classe d'extension est là .Mes méthodes d'extension sont là. Essaye ça Méthode d'extension a> p>
Une classe d'extension en C # pourrait simplement être une classe enfant (héritage et ajouter plus de fonctionnalités au type de base ou à l'interface) ou à une classe statique. p>
Je sais que cette question est un peu plus âgée mais une chose qui me suis venu à l'esprit lorsque j'ai lu cette question est le livre de refactorisation de Martin Fowler. Au chapitre 7 Certaines des autres réponses ici ont fait référence à la méthode d'extension Je pense que le livre a été écrit en 1999 avec la plupart des exemples de Java, alors peut-être que cela ne concerne pas tant .net mais je suppose que le concept est universel. P> DateTime code> classe de .net qui est en fait scellé). P>
La chose la plus proche à une classe d'extension que je peux trouver est, par exemple, est par exemple la classe d'exception d'ExceptionSoft. https://docs.microsoft .com / fr-US / antérieurs-versions / msp-np / ff654014 (v = pandp.10)
Si vous créez votre propre méthode dans une classe avec ce nom, il devient accessible à partir de l'objet d'exception . P>
catch(Exception ex)
{
String message = ex.myMethod();
}
Voulez-vous dire des méthodes d'extension? Ne pensez pas que les classes d'extension existent dans C # à moins que vous ne parlez de classes dérivées?
Êtes-vous sûr que c'était "Classe d'extension" et non "Méthode d'extension"?