Этот вопрос дает ответ, что Java @Override имеет эквивалент С# ключевого слова override
для методов. Однако, поскольку Java 1.6 аннотация @Override также может применяться к интерфейсам.
Практическое применение этого в том, что в Java вы получаете ошибки компиляции, когда класс утверждает, что он реализует метод интерфейса, когда он больше не работает (например, если метод интерфейса удален). Есть ли эквивалентная функциональность в С#?
Некоторые примеры кода:
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
}
С#:
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
}