Sobes.tech
Junior — Middle

Lehet-e egy metódus implementációját közvetlenül egy interfész definíciójában deklarálni?

sobes.tech MI

Válasz az MI-től

C# 8.0-tól kezdve az interfészekben lehetőség nyílt arra, hogy közvetlenül a definíciójukban határozzuk meg a metódusok implementációját — ezeket "alapértelmezett interfész metódusoknak" (default interface methods) nevezik. Ez lehetővé teszi új metódusok hozzáadását az interfészekhez anélkül, hogy megszakítaná a meglévő megvalósításokat.

Példa:

public interface ILogger
{
    void Log(string message); // szokásos interfész metódus

    void LogWarning(string message) // alapértelmezett implementációval rendelkező metódus
    {
        Log("Warning: " + message);
    }
}

Korábban az interfészekben csak a metódus szignatúrák voltak megengedettek, test nélkül. Most már írhatjuk a metódus testét, ami bővíti az interfészek képességeit.