Есть ли в C # способ пометить метод как часть класса для удовлетворения интерфейса, который реализует этот класс? Я иногда задаюсь вопросом, копаясь в коде класса, почему существуют некоторые методы, но затем, когда я пытаюсь удалить один, так как он не используется, я вижу, что класс должен реализовать какой-то интерфейс. Было бы хорошо, чтобы эти методы были помечены как таковые. Что-то вроде @Override
аннотации в Java, может быть.
Редактировать: Я бы предпочел , а не явно реализовать интерфейс, потому что тогда доступ к методам интерфейса в экземпляре моего класса становится больше хлопот (т. Е. Необходимость приведения экземпляр MyClass
должен быть IMyInterface
до вызова MyInterfaceMethod
).
Редактировать: Я бы также предпочел не использовать регионы. Я не хочу, чтобы большой блок кода описывался свободно через какое-то произвольное имя как часть реализации интерфейса, а скорее чтобы обозначать конкретные методы, где бы они ни находились в классе, как часть интерфейса. Даже некоторый шаблон комментария XML, предназначенный для указания, к какому интерфейсу принадлежит метод, было бы неплохо.
Редактировать: Все ответы, кажется, предполагают, что я явно реализую интерфейсы, что я не хочу делать, или что я использую регионы, что я тоже не хочу делать. Я думаю Уилл понял мою просьбу лучше всего. Я надеялся на что-то вроде аннотации, поэтому я мог сделать что-то вроде следующего:
[Interface(IMyInterface)]
public void MyImplicitlyImplementedInterfaceMethod() { }
Или, как dss539 упомянул в комментарии к этот ответ :
public implement void MyImplicitlyImplementedInterfaceMethod() { }
Так же, как у нас override
сегодня: public override bool Equals(object obj) { }
.