A lo largo de los anteriores
temas se ha ido diseminando diversas opciones de compilación relacionadas de
manera más o menos directa con el lenguaje C#. En este punto haremos
recapitulación de todas ellas mismas y las resumiremos:
·
/define (/d):
En el Tema 3: El preprocesador ya se
introdujo esta opción cuyos valores recordemos que se utilizan para introducir
definiciones de símbolos de preprocesado al principio de todos los fuentes a
compilar.
Por ejemplo,
si se desea compilar los fuentes A.cs
y B.cs como si al principio de ellos se hubiese incluido las
directivas de preprocesado #define PRUEBA
y #define
VERSION1 podría llamarse al compilador con:
csc /d:PRUEBA;VERSION1
A.cs B.cs
·
/checked: En los temas 4 y
16 se explicó que todo desbordamiento
que ocurra en operaciones aritméticas entre variables enteras es tratado por
defecto truncando el resultado. Pues bien, la utilidad de activar esta opción
es precisamente forzar a que se incluyan en el código generado las
comprobaciones necesarias para que en caso de desbordamiento se lance en su
lugar una System.OverflowException.
Obviamente el
código compilado con /checked se ejecutará más
lento que el que lo haga sin ella ya que incluirá comprobaciones de
desbordamiento adicionales. Sin embago, a cambio con ello se consigue detectar
con facilidad errores derivados de desbordamientos que de otra manera podrían
pasar inadvertidos.
·
/unsafe: En el Tema
18: Código inseguro ya se explicó que la única utilidad de esta opción es
servir al compilador de mecanismo de seguridad gracias al que pueda asegurarse
de que el usario sabe lo que hace al compilar código con punteros.
·
/doc: Esta opción ya se
introdujo en el Tema 19: Documentación
XML, donde se explicó que se usa para indicar al compilador que es desea
generar un fichero XML con el contenido de los comentarios de documentación
incluidos en los fuentes a compilar. El nombre
de ese fichero será el que se dé como valor a esta opción.
Al usar esta
opción hay que tener en cuenta una cosa, y es que para optimizar el tiempo que se tarda en realizar
compilaciones incrementales, durante ellas esta opción es ignorada. Por tanto,
no tiene mucho sentido combinar /doc y /incr.