7
votes

Qu'est-ce qu'une classe d'extension?

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?


2 commentaires

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"?


8 Réponses :


22
votes

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 classe.)


0 commentaires

2
votes

une classe qui a Méthodes d'extension .

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.


0 commentaires

7
votes

Votre professeur peut également parler de classes partielles .. .


0 commentaires

4
votes

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.


0 commentaires

0
votes

Je ne sais pas que la classe d'extension est là .Mes méthodes d'extension sont là. Essaye ça Méthode d'extension


0 commentaires

1
votes

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.


0 commentaires

0
votes

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 Caractéristiques en mouvement entre les objets , il décrit une refactorisation appelée introduire une extension locale . Il parle de la création d'une classe d'extension qui n'est rien de plus ou moins qu'une sous-classe ou une enveloppe autour d'un objet. Le but de cette classe d'extension consiste à étendre la fonctionnalité d'une classe existante comme date (la date de la classe Java Date pas la catégorie DateTime classe de .net qui est en fait scellé).

Certaines des autres réponses ici ont fait référence à la méthode d'extension qui semble être une autre façon d'utiliser le refactoring introduire la méthode étrangère . Je ne suis pas sûr de cela, alors je suis peut-être trompé ici.

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.


0 commentaires

0
votes

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();
}


0 commentaires