Hogar Desarrollo ¿Qué es un atributo condicional en c? - definición de techopedia

¿Qué es un atributo condicional en c? - definición de techopedia

Tabla de contenido:

Anonim

Definición - ¿Qué significa atributo condicional?

Un atributo condicional es una etiqueta utilizada para marcar un método o clase cuya ejecución depende de la definición del identificador de preprocesamiento.


Un atributo condicional indica una condición para especificar la compilación condicional en la que los métodos se invocan selectivamente sobre la base de la definición de símbolos. Le indica al compilador que compile (en el lenguaje intermedio de Microsoft) o que no compile bloques específicos de código, en función de una condición, ya sea que se defina o no un símbolo de compilación condicional específico. Si no se han definido símbolos específicos en el momento en que se los llama, el compilador ignorará las llamadas a ese método o clase.

Techopedia explica el atributo condicional

Un atributo condicional tiene las siguientes características:

  • Se puede aplicar a métodos y clases, pero solo si se derivan de un atributo.
  • Al aplicar el atributo condicional a una clase, la clase de atributo se emitirá a los metadatos solo si se define el símbolo de compilación condicional.
  • Toma un parámetro, que es el símbolo identificador que controla la compilación.
  • El compilador verificará los argumentos pasados ​​a un método condicional o clase de atributo.
  • Está completamente ocupado por el compilador y no por el tiempo de ejecución.
  • No se puede aplicar a un método utilizado en una expresión de creación de delegado.
  • No afecta el código generado para el método condicional, pero sí afecta la llamada al método.

Un atributo condicional proporciona un patrón de programación declarativo y ayuda a mantener fácilmente el código fuente. Al aplicar un atributo condicional a nivel de método, el código fuente es más legible. El llamador de un método no necesita tomar código adicional para la compilación condicional. Se utiliza un atributo condicional para habilitar las funcionalidades de rastreo y registro en las compilaciones de depuración utilizando el identificador DEBUG para mostrar y registrar información de diagnóstico relacionada con la aplicación. Además, ayuda a separar la lógica relacionada con la compilación de depuración (en los sistemas utilizados para el desarrollo) de las compilaciones de lanzamiento, que se implementan en sitios y aplicaciones. Para mantener múltiples ediciones (con características seleccionadas en alguna edición) de un software sin duplicación de código, la compilación condicional forma la técnica correcta mediante la cual se mantiene el código fuente principal único para múltiples ediciones en función de los símbolos respectivos definidos para ellos.


Las siguientes son algunas reglas a seguir al usar un atributo condicional:

  • Un método condicional dentro de una declaración de clase o estructura debe tener un tipo de retorno como vacío.
  • Mientras se utilizan identificadores múltiples como atributos condicionales, la inclusión de métodos se basa en el resultado de OR lógico o AND lógico en los símbolos definidos.
  • No se puede especificar en un método en una declaración de interfaz.
  • Un método condicional no puede ir precedido de la palabra clave "override", pero puede ser virtual. Si se anula, se considera que es un condicional implícitamente.
  • Los símbolos considerados para la compilación condicional se pueden definir como opciones de línea de comandos del compilador o como variables de entorno del shell del sistema operativo o como pragmas (usando la directiva del preprocesador "#define") en el código fuente.
  • A diferencia de C ++, la definición de símbolos en C # puede estar en cualquier orden y, por lo tanto, el orden entre "#define" y un método condicional debe establecerse correctamente.

Aunque el uso de "#if y #endif" forma una opción alternativa al atributo condicional, este último proporciona un enfoque más limpio, elegante y menos propenso a errores en comparación con el primero. Internamente, la diferencia es que si bien se utiliza un atributo condicional para un método, el método seguirá siendo parte del ensamblado y no se cargará. Pero en el caso de #if / #endif, el método no será visible en el ensamblaje mismo.

Esta definición fue escrita en el contexto de C #
¿Qué es un atributo condicional en c? - definición de techopedia