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


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

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

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

Атрибут Conditional недопустим для метода 'method', так как он является методом переопределения
The Conditional attribute is not valid on 'method' because it is an override method

Атрибут Conditional нельзя применять к методу, который отмечен ключевым словом override. Дополнительные сведения см. в разделе Использование ключевых слов "Override" и "New" (Руководство по программированию в C#).

Компилятор никогда не привязывается к методам переопределения; он привязывается только к базовому методу, а среда CLR вызывает метод переопределения, когда это необходимо.

Следующий пример проводит к генерированию ошибки CS0243:

// CS0243.cs
// compile with: /target:library
public class MyClass
{
   public virtual void M() {}
}

public class MyClass2 : MyClass
{
   [System.Diagnostics.ConditionalAttribute("MySymbol")]   // CS0243
   // remove Conditional attribute or remove override keyword
   public override void M() {}
}