Error del compilador CS0182

Actualización: noviembre 2007

Mensaje de error

Un argumento de atributo debe ser una expresión constante, expresión Typeof o una expresión de creación de matrices de un tipo de parámetro de atributo
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

Se aplican ciertas restricciones a los tipos de argumentos que pueden utilizarse con los atributos. Tenga en cuenta que, además de las restricciones especificadas en el mensaje de error, NO se permiten los tipos siguientes como argumentos de atributo:

Para obtener más información, vea Atributos globales (Guía de programación de C#).

Ejemplo

El código siguiente genera el error CS0182:

// CS0182.cs
public class MyClass
{
    static string s = "Test";

    [System.Diagnostics.ConditionalAttribute(s)]   // CS0182
    // try the following line instead
    // [System.Diagnostics.ConditionalAttribute("Test")]
    void NonConstantArgumentToConditional()
    {
    }

    public static void Main()
    {
    }
}