Эквивалент Java 1.6 @Override для интерфейсов в C #

Этот вопрос дает ответ, что 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
}

15
задан Community 23 May 2017 в 10:28
поделиться