Метод интерфейса, помеченный как устаревший, не выдает сообщение от компилятора при реализации.C#

Место общения программистов C#
Ответить
Anonymous
 Метод интерфейса, помеченный как устаревший, не выдает сообщение от компилятора при реализации.

Сообщение Anonymous »

Рассмотрим этот пример

Код: Выделить всё

    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();
Компилятор не дает сбоев при компиляции (у меня есть пометка «Устарело», чтобы вместо предупреждения выдавалась ошибка).
Программа компилируется, и метод вызывается с помощью ошибок тоже нет.

Насколько я вижу, это ошибка компилятора. Я что-то упустил?

Примечание: я использую VS2010

Подробнее здесь: https://stackoverflow.com/questions/155 ... compiler-w
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»