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.