Подтвердить что ты не робот

Есть ли что-то в С#, похожее на аннотацию java @override?

Я использовал @Override в java и очень полезен. Есть ли что-то подобное в С#?

4b9b3361

Ответ 1

Компилятор С# обеспечивает проверку времени компиляции для переопределений методов, включая проверку того, действительно ли метод является переопределяющим по своему усмотрению. Вы можете указать, что метод должен быть переопределен с помощью ключевого слова .NET override.

Ответ 2

В С# вы должны использовать ключевое слово override для переопределения функций.

Если вы используете override без соответствующей базовой функции virtual или abstract, вы получите ошибку компилятора.

Если вы не используете override и соответствующая базовая функция, вы получите предупреждение о компиляторе (если вы не добавите new).

Ответ 3

В CSharp значение override ключевых слов полностью отличается от мира Java. Эквивалент в Csharp World - явная реализация, но у него есть недостаток.

interface IShape
{
     void Display();
}

class Square : IShape
{
     void IShape.Display()
     {

     }
}

Ответ 4

Нет, да. Это делает ненужным аннотацию, потому что в С# есть переопределение kkeyword в langauge, и компилятор предупреждает, если вы "спрячете" метод. Таким образом, либо вы говорите "новое", либо "переопределяете" непосредственно как часть метода.

Java в основном использует аннотацию, чтобы скрыть ошибку в спецификациях langauge.

Пожалуйста, прочитайте спецификацию языка для С#. Полностью.