Я использовал @Override в java и очень полезен. Есть ли что-то подобное в С#?
Есть ли что-то в С#, похожее на аннотацию java @override?
Ответ 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.
Пожалуйста, прочитайте спецификацию языка для С#. Полностью.