更新:2007 年 11 月
错误消息
Conditional 属性在“method”上无效,因为该属性是重写方法
在用 override 关键字标记的方法上不允许有 Conditional 属性。有关更多信息,请参见了解何时使用 Override 和 New 关键字(C# 编程指南)。
编译器从不绑定到重写方法;它只绑定到基方法,而且公共语言运行库在适当的时候调用重写。
下面的示例生成 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() {}
}