Sobes.tech
Back to questions
Junior — Middle
66

Можно ли определить конкретную реализацию методов внутри интерфейса?

Companies where asked
appfox

Answer from AI

sobes.tech AI

В C# начиная с версии 8.0 появилась возможность определять реализацию методов внутри интерфейса — это так называемые методы с реализацией по умолчанию (default interface methods).

Это позволяет добавлять новые методы в интерфейсы без нарушения существующих реализаций.

Пример:

public interface ILogger
{
    void Log(string message);

    void LogError(string message)  // метод с реализацией по умолчанию
    {
        Log("ERROR: " + message);
    }
}

public class ConsoleLogger : ILogger
{
    public void Log(string message)
    {
        Console.WriteLine(message);
    }
}

Таким образом, класс ConsoleLogger может не реализовывать LogError, и всё равно этот метод будет работать по умолчанию.