Я знаю методы расширения (как описано, например, в этой ссылке). Но это не мой ответ, потому что, имея расширение метода, подобное следующему, компилятор по-прежнему жалуется на реализацию MyMethod в MyClass:
Код: Выделить всё
public interface IMyInterface
{
string MyMethod();
}
public static class IMyInterfaceExtens
{
public static string MyMethod(this IMyInterface someObj)
{
return "Default method!";
}
}
public class MyClass: IMyInterface
{
// I want to have a default implementation of "MyMethod"
// so that I can skip implementing it here
}
PS: иметь абстрактный базовый класс с некоторым методом также не для моего ответа просто потому, что в C# нет множественного наследования, и это отличается от реализации интерфейсов по умолчанию (если это возможно!).
Подробнее здесь: https://stackoverflow.com/questions/303 ... interfaces
Мобильная версия