考虑这个例子
public interface IAnimal
{
[Obsolete("Animals can't eat anymore", true)]
void Eat();
}
public class Animal : IAnimal
{
public void Eat()
{
Console.WriteLine("Hello");
}
}
我有一个带有过时方法的接口 IAnimal。Animal 类实现了该接口。
稍后,我这样调用 Eat 方法:
var animal = new Animal();
animal.Eat();
编译器不会编译失败(我将 Obsolete 标记为给出错误而不是警告)。程序编译并且该方法被调用并且没有错误,以及。
据我所知,这是编译器的错误。我错过了什么吗?
注意:我使用的是 VS2010