Possible en double:
Can you make an Extension Method Static/Shared?Comment puis-je étendre la classe, pas l'instance?
Les méthodes d'extension sont super! Pardonnez mon ignorance, mais jusqu'ici j'ai seulement trouvé que vous pouvez étendre une classe pour autoriser des méthodes sur ses instances, mais pas la classe elle-même.
Voici ce que j'essaie de faire.
J'ai un ENUM comme ceci:
enum ViewType
{
Front_View,
Back_View
}
Et je l'ai déjà créé une méthode d'extension ToDescription()
pour afficher une représentation textuelle conviviale du type d'affichage, comme ceci:
ViewType thisview = ViewType.Front_View;
string thisviewtext = thisview.ToDescription(); // translates to "Front View"
Mais plus tard dans le code, je veux analyser de cette traduction dans le type, comme ce code potentiel si je peux supposer étendre le type ENUM lui-même:
// !!!NOT REAL CODE YET!!!
// translate to value ViewType.FrontView
ViewType newview = ViewType.ParseFromDescription("Front View");
Comment implémenter cette méthode d'extension ParseFromDescription(string)
(si possible)?
Pour ce que ça vaut, cela est tout à fait faisable dans des langues comme Ruby. Si vous avez envie de ce genre de contrôle, un langage plus libéral pourrait valoir la peine d'être examiné. –