12
votes

Méthodes d'extension sur une classe statique?

Je sais que je peux faire le ci-dessous pour prolonger une classe. J'ai une classe statique que j'aimerais prolonger. Comment puis-je le faire? Je voudrais écrire classname.myfunc () xxx


0 commentaires

3 Réponses :


10
votes

Vous ne pouvez pas étendre les classes statiques en C #. Les méthodes d'extension fonctionnent en définissant des méthodes statiques qui apparaissent comme des méthodes d'instance sur certains types. Vous ne pouvez pas définir une méthode d'extension qui étend une classe statique.


0 commentaires

15
votes

Vous ne pouvez pas avoir de méthodes d'extension sur les classes statiques car les méthodes d'extension sont uniquement applicables à l'instanciable Les types et les classes statiques ne peuvent pas être instancié.

Vérifiez ce code .. xxx

premier paramètre à isémail () est l'instance de type s'étendant et non seulement le type lui-même. Vous ne pouvez jamais avoir une instance d'un type statique.


0 commentaires

0
votes

Vous voudrez peut-être transformer votre classe statique en un Singleton . Ensuite, il n'y aura qu'une seule instance de la classe. Et vous pouvez utiliser des méthodes d'extension dessus car c'est une instance.

Ceci est fourni que vous avez accès au code source de la classe.


4 commentaires

Pouvons-nous nous attendre à une explication à cela (je déteste singleton)?


Eh bien, vous ne vous attendriez pas à un exemple de "je déteste singleton", n'est-ce pas?


Comment quelqu'un peut-il supprimer mon je déteste singleton je déteste le commentaire singleton?


@ acidzombie24: J'ai aimé votre commentaire. Probablement quelqu'un avec des privilèges élevés (& score élevé) l'a supprimé pour une raison quelconque, peut-être qu'ils n'ont pas compris la blague. Ce site est géré par les membres. Dommage que ce soit arrivé.