Этот вопрос дает ответ, что Java @Override имеет эквивалент C # ключевого слова override
в методах. Однако, начиная с Java 1.6, аннотация @Override также может применяться к интерфейсам.
Практическое использование этого заключается в том, что в Java вы получаете ошибки компиляции, когда класс заявляет, что он реализует метод интерфейса, когда он больше не реализует его (например, если метод интерфейса удален). Есть ли эквивалентные функции в C #?
Некоторые примеры кода:
Java:
public interface A {
public void foo();
// public void bar(); // Removed method.
}
public class B implements A {
@Override public void foo();
@Override public void bar(); // Compile error
}
C #:
public interface IA {
void Foo();
// void Bar(); // Removed method.
}
public class B : A {
public override void Foo(); // Doesn't compile as not 'overriding' method
public void Bar(); // Compiles, but no longer implements interface method
}