Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

ConditionalAttribute (Clase)

Indica a los compiladores que se debería omitir una llamada al método o atributo a menos que se defina un símbolo de compilación condicional especificado.

System.Object
  System.Attribute
    System.Diagnostics.ConditionalAttribute

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

'Declaración
<SerializableAttribute> _
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Method, AllowMultiple := True)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class ConditionalAttribute _
	Inherits Attribute

El tipo ConditionalAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsConditionalAttributeInicializa una nueva instancia de la clase ConditionalAttribute.
Arriba

  NombreDescripción
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsConditionStringObtiene el símbolo de compilación condicional asociado al atributo ConditionalAttribute.
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

El atributo ConditionalAttribute puede aplicarse a métodos y clases. Sin embargo, su uso en clases solo es válido para los tipos derivados de Attribute. ConditionalAttribute se omite o produce una advertencia del compilador o un mensaje de error si se aplica a cualquier otro tipo.

Aplicar ConditionalAttribute a un método indica a los compiladores que una llamada al método no debería compilarse en el lenguaje intermedio de Microsoft (MSIL) a menos que se defina el símbolo de compilación condicional asociado a ConditionalAttribute. Obtendrá un error de compilación en Visual Studio si aplica este atributo a un método que devuelve void. Aplicar ConditionalAttribute a un atributo indica que el atributo no debería emitirse a los metadatos a menos que se defina el símbolo de compilación condicional. Aún así, el compilador comprueba los tipos de los argumentos pasados al método o atributo.

Puede utilizar las técnicas siguientes para definir los símbolos de compilación condicional:

  • Opciones de la línea de comandos del compilador de uso; por ejemplo, /define:DEBUG.

  • Variables de entorno de uso en el shell del sistema operativo; por ejemplo, set DEBUG=1.

  • Pragmas de uso en el código fuente; por ejemplo, defina la variable de compilación como sigue:

    #Const DEBUG=True
    

    Para anular la variable, utilice el siguiente:

    #Const DEBUG=False
    

Se permite que los compiladores que cumplen con Common Language Specification (CLS) omitan ConditionalAttribute. Los compiladores de C#, Visual Basic, y C++ admiten ConditionalAttribute; el compilador de JScript no admite el atributo.

NotaNota

En Visual Basic, este atributo no afecta al operador AddressOf . Por ejemplo, Call CType(AddressOf delegate, Action) invoca siempre delegate, aunque no pudiera Call delegate() .

ConditionalAttribute se aplica a los métodos definidos en las clases Debug y Trace.

Para obtener más información acerca de cómo utilizar los atributos, vea Extender metadatos mediante atributos.

El siguiente ejemplo muestra el uso de ConditionalAttribute. El ejemplo supone que la condición está definida con la opción del compilador /define . Puede obtener resultados diferentes si cambia la opción del compilador. Opcionalmente puede definir las condiciones mediante pragma en el código muestra en lugar de identificarse como opciones del compilador.


#Const CONDITION1 = True
#Const CONDITION2 = True
Imports System
Imports System.Diagnostics

Class Test

    Shared Sub Main()
        Console.WriteLine("Calling Method1")
        Method1(3)
        Console.WriteLine("Calling Method2")
        Method2()

        Console.WriteLine("Using the Debug class")
        Debug.Listeners.Add(New ConsoleTraceListener())
        Debug.WriteLine("DEBUG is defined")
    End Sub

    <ConditionalAttribute("CONDITION1")> _
    Shared Sub Method1(x As Integer)
        Console.WriteLine("CONDITION1 is defined")
    End Sub

    <ConditionalAttribute("CONDITION1"), ConditionalAttribute("CONDITION2")> _
    Shared Sub Method2()
        Console.WriteLine("CONDITION1 or CONDITIOIN2 is defined")
    End Sub

End Class


' When compiled as shown, the application (named ConsoleApp) 
' produces the following output.

'Calling Method1
'CONDITION1 is defined
'Calling Method2
'CONDITION1 or CONDITION2 is defined
'Using the Debug class
'DEBUG is defined


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft