/define (Definición de preprocesador) (Opciones del compilador de C#)

Actualización: Julio de 2008

La opción /define define name como un símbolo en todos los archivos de código fuente del programa.

/define:name[;name2]

Argumentos

  • name, name2
    Nombre de uno o varios símbolos que desea definir.

Comentarios

La opción /define produce el mismo efecto que una directiva de preprocesador #define, con la diferencia de que la opción del compilador está activada para todos los archivos del proyecto. Un símbolo permanece definido en un archivo de código fuente hasta que una directiva #undef del archivo de código fuente quita la definición. Si se utiliza la opción /define, la directiva #undef de un archivo no tiene ningún efecto en otros archivos de código fuente del proyecto.

Se pueden utilizar símbolos creados por esta opción con #if, #else, #elif y #endif para compilar archivos de código fuente de forma condicional.

/d es la forma abreviada de /define.

Se pueden definir múltiples símbolos con /define utilizando punto y coma o coma para separar los nombres de símbolos. Por ejemplo:

/define:DEBUG;TUESDAY

El propio compilador de C# no define ningún símbolo ni macro que se pueda utilizar en el código fuente; todas las definiciones de símbolos deben estar definidas por el usuario.

Nota:

La directiva #define de C# no permite que se le proporcione un valor a un símbolo, igual que sucede en otros lenguajes como C++. Por ejemplo, #define no se puede utilizar para crear una macro o definir una constante. Si tiene que definir una constante, utilice una variable enum. Si desea crear una macro de estilo C++, considere alternativas como el uso de genéricos. Ya que las macros son notoriamente propensas a errores, C# no permite su uso, pero proporciona alternativas más seguras.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra la página Propiedades del proyecto.

  2. En la ficha Generar, escriba el símbolo que se va a definir en el cuadro Símbolos de compilación condicional. Por ejemplo, si está utilizando el ejemplo de código siguiente, escriba solamente xx en el cuadro de texto.

Para obtener información sobre cómo establecer esta opción del compilador mediante programación, vea DefineConstants.

Ejemplo

// preprocessor_define.cs
// compile with: /define:xx
// or uncomment the next line
// #define xx
using System;
public class Test 
{
    public static void Main() 
    {
        #if (xx) 
            Console.WriteLine("xx defined");
        #else
            Console.WriteLine("xx not defined");
        #endif
    }
}

Vea también

Otros recursos

Opciones del compilador de C#

Propiedades del proyecto (Visual Studio)

Historial de cambios

Fecha

Historial

Motivo

Julio de 2008

Se ha revisado la información de la sección de comentarios para indicar que la opción está activada para todos los archivos hasta que se encuentre una directiva #undef.

Corrección de errores de contenido.