Básicamente lo que me gustaría saber es si hay alguna manera de agregar nuevas 'declaraciones' a los lenguajes basados en .net. Un ejemplo de lo que estoy buscando sería algo así como introducir un public class MyClass decoratorOf ClassWithLotsOfMethods
y en tiempo de precompilación cambiar eso para que sea una clase normal que anula todo por defecto pero los métodos que defino.¿Extender el lenguaje C#?
Otro ejemplo sería las propiedades de auto .NET 3.5, o métodos de extensión, etc
Esto es sólo por diversión, no es que yo realmente quiero hacer esto, sólo por curiosidad, si es posible
Gracias! Seba
Parece que usted está pensando en la forma en que había al igual que los métodos de extensión para trabajar: si Foo se declara como una Clase de Extensión de Barra, entonces un objeto declarado como Foo se consideraría una Barra, excepto el procesamiento en tiempo de compilación de métodos y propiedades autoestáticas de Foo que incondicionalmente sombrear los de Bar (incluso cuando los métodos correspondientes existen en Bar). Tal diseño permitiría agregar miembros a Bar sin romper el código que usa Foo, incluso si dichos miembros coinciden con los nombres de las extensiones de Foo. Lástima que no conozco ninguna manera de hacer que el idioma lo respalde. – supercat
@supercat: deberías echarle un vistazo a [Scala implicits] (http://www.artima.com/weblogs/viewpost.jsp?thread=179766) –