Поделиться через


Ошибка компилятора CS0182

Обновлен: Ноябрь 2007

Сообщение об ошибке

Аргументом атрибута должно быть константное выражение, выражение typeof или выражение создания массива того же типа, что и параметр атрибута
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

На типы аргументов, которые можно использовать с атрибутами, накладываются определенные ограничения. Обратите внимание, что, помимо ограничений, указанных в сообщении об ошибке, НЕ ДОПУСКАЕТСЯ использовать в качестве аргументов атрибутов следующие типы:

Дополнительные сведения см. в разделе Глобальные атрибуты (Руководство по программированию в C#).

Пример

Следующий пример приводит к возникновению ошибки 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()
    {
    }
}