CLR: .Net / Mono / Boo / Otros CLR > C#
"#define" pero en C#?
ehguacho:
ok muchas gracias
Jeysscarr:
jeje no sera con "CONST"
en c++: #define ALTO 500
en c#: public const Alto=500;
ehguacho:
--- Cita de: "Jeysscarr" ---jeje no sera con "CONST"
en c++: #define ALTO 500
en c#: public const Alto=500;
--- Fin de la cita ---
gracias por tu respuesta Jeysscarr! pero eso no es precisamente lo que estoy buscando, porque a los #define los uso (usaba, mejor dicho, en C++) como "pseudo-funciones" digamos...
por ejemplo:
Z(VAR) VAR++; X + Y
...entonces podia pasar argumentos a los "#define" (en el ejemplo el parametro seria VAR). eso es justamente lo q quiero hacer. de ser posible los usaba asi porque es mucho mas rapido que andar usando funciones, incluso si estas las declaraba como "static inline"
Jeysscarr:
mmmmm ok, tengo entendido que las directivas de preprocesador de C# son totalmente iguales que las de C++ con la unica limitación de que estas se tienen que hacer antes de escribir codigo alguno C# en el fichero en donde se describan...
es decir antes de cualquier Using o cosa C# por el estilo...
Ejemplo:
--- Código: C# ---#define PI 3.14#define AREA_CIRCULO(x) PI * (x) * (x) //C++//Ahora podemos usar la macro como si fuera función normal: void main() { int a; a = AREA_CIRCULO(3); } //Durante la compilación la macro se expande a: a = 3.14 * (3) * (3) //y obtenemos el resultado esperado.
Eso seria en C++..... pero lamentablemente No es posible en C #. El #define sólo permite definir símbolos. En su lugar utiliza un método estático que toma un objeto como parámetro
Jeysscarr:
--- Cita de: "ehguacho" ---
--- Cita de: "Jeysscarr" ---jeje no sera con "CONST"
en c++: #define ALTO 500
en c#: public const Alto=500;
--- Fin de la cita ---
gracias por tu respuesta Jeysscarr! pero eso no es precisamente lo que estoy buscando, porque a los #define los uso (usaba, mejor dicho, en C++) como "pseudo-funciones" digamos...
por ejemplo:
Z(VAR) VAR++; X + Y
...entonces podia pasar argumentos a los "#define" (en el ejemplo el parametro seria VAR). eso es justamente lo q quiero hacer. de ser posible los usaba asi porque es mucho mas rapido que andar usando funciones, incluso si estas las declaraba como "static inline"
--- Fin de la cita ---
El problema es que el preprocesador de C# solo usa #define y /define para definir simbolos y despues evaluarlos con #if y #else.. por ejemplo para usar correctamente un #define en c# deberias usarlo antes de los using y solo determinando el nombre del simbolo:
#define DEBUG
using System...;
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa