Exportar (0) Imprimir
Expandir todo

ConditionalAttribute (Clase)

Indica a los compiladores que se puede llamar a un método si se le aplica un identificador de preprocesamiento especificado.

Espacio de nombres: System.Diagnostics
Ensamblado: mscorlib (en mscorlib.dll)

[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple=true)] 
[ComVisibleAttribute(true)] 
public sealed class ConditionalAttribute : Attribute
/** @attribute SerializableAttribute() */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple=true) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class ConditionalAttribute extends Attribute
SerializableAttribute 
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple=true) 
ComVisibleAttribute(true) 
public final class ConditionalAttribute extends Attribute

ConditionalAttribute admite los métodos condicionales definidos en las clases Trace y Debug.

Los métodos representados por el atributo ConditionalAttribute siempre se compilan en el Lenguaje intermedio de Microsoft (MSIL), pero no se pueden realizar llamadas a estos métodos en tiempo de ejecución. Si el método tiene argumentos, sus tipos se comprueban en tiempo de ejecución, pero no se evalúan.

NotaNota

Visual Studio 2005 compila las versiones de lanzamiento con la constante TRACE de compilación condicional definida, y las versiones de depuración con las constantes DEBUG y TRACE definidas de forma predeterminada. En el caso de las versiones de línea de comandos, es necesario especificar todas las constantes de compilación condicionales.

NotaNota

ConditionalAttribute, que tiene una propiedad ConditionString asociada, puede agregarse a la definición de un método para crear un método condicional. Más tarde, cuando el compilador detecta una llamada a dicho método, puede decidir pasar por alto la llamada, a no ser que se defina una variable de compilación en el lugar de la llamada, con un valor que coincida (con distinción de mayúsculas y minúsculas) con la propiedad ConditionString suministrada a ConditionalAttribute .

Los compiladores podrían proporcionar varias técnicas para definir dichas variables de compilación, tales como:

  • Modificadores de línea de comandos del compilador (por ejemplo, /define:DEBUG).

  • Variables de entorno del shell del sistema operativo (por ejemplo, SET DEBUG=1).

  • Directivas pragma del código fuente (por ejemplo, #define DEBUG para definir la variable de compilación, o #undef DEBUG para anular la definición).

Para pasar por alto la clase ConditionalAttribute se admiten los compiladores compatibles con CLS.

Para obtener más información acerca del uso de atributos, vea Extender metadatos mediante atributos.

En el siguiente ejemplo de aplicación de consola, se muestra el uso de ConditionalAttribute con un compilador determinado que admite el uso de este atributo.

using System;
using System.Diagnostics;

class Class1
{
	[STAThread]
	static void Main(string[] args)
	{				
		TextWriterTraceListener myWriter = 
			new TextWriterTraceListener(System.Console.Out);
		Debug.Listeners.Add(myWriter);
		Console.WriteLine("Console.WriteLine is always displayed");
		Method1();
		Method2();
	}
	
	[Conditional("CONDITION1")]
	public static void Method1()
	{
		Debug.Write("Method1 - DEBUG and CONDITION1 are specified\n");
		Trace.Write("Method1 - TRACE and CONDITION1 are specified\n");
	}
	
	[Conditional("CONDITION1"), Conditional("CONDITION2")]	
	public static void Method2()
	{
		Debug.Write("Method2 - DEBUG, CONDITION1 or CONDITION2 are specified\n");
	}
}

/*
This console application produces the following output when compiled as shown.

Console.WriteLine is always displayed
Method1 - DEBUG and CONDITION1 are specified
Method1 - TRACE and CONDITION1 are specified
Method2 - DEBUG, CONDITION1 or CONDITION2 are specified

Console.WriteLine is always displayed
Method2 - DEBUG, CONDITION1 or CONDITION2 are specified

Console.WriteLine is always displayed
Method1 - TRACE and CONDITION1 are specified

*/

System.Object
   System.Attribute
    System.Diagnostics.ConditionalAttribute

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft