Ошибка компилятора 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()
{
}
}