Étendre le langage C #?

Ce que j’aimerais savoir, en gros, c’est s’il existe un moyen d’append de nouvelles “instructions” aux langues basées sur .net. Un exemple de ce que je recherche pourrait être quelque chose comme introduire une public class MyClass decoratorOf ClassWithLotsOfMethods et, au moment de la pré-compilation, la changer pour qu’elle soit une classe normale qui écrase tout par défaut, à l’ public class MyClass decoratorOf ClassWithLotsOfMethods des méthodes que je définis.

Un autre exemple serait les propriétés automatiques .net 3.5, ou les méthodes d’extension, etc.

Ceci est juste pour le plaisir, pas que je veuille vraiment le faire, juste curieux de savoir si c’est possible

Merci! Seba

C # ne permet pas cela. Vous pouvez bien sûr ajuster l’IL généré avec un post-compilateur (comme CciSharp ).

Certains langages .NET alternatifs autorisant les extensions sont Nemerle et Boo .

Il n’y a rien d’intégré.

Vous pouvez bien sûr utiliser un pré-processeur mais cela ne vous rendra pas populaire.

Pas que je sache, mais jetez un coup d’œil aux modèles PostSharp et T4 et voyez si cela peut résoudre votre problème 🙂

Connexe: Extension du compilateur Mono C #: existe-t-il de la documentation ou des précédents?