Default interface metotları
Default interface metotlarıyla geriye dönük uyumluluk öğrenirsin.
Default interface metotları
C# 8'den itibaren interface metotları gövde içerebilir. Bunlara default interface metodu denir. Tanımı: void Write(string message) { Console.WriteLine(message); }.
Bir sınıf bu interface'i uyguladığında, default metodu yeniden yazmak zorunda değildir; interface'ten gelen gövde kullanılır. Bu, mevcut interface'lere metot eklerken geriye dönük uyumluluğu korur. Default metot yalnızca interface tipindeki değişken üzerinden çağrılabilir; sınıf tipinden çağrılmaz.
Default metot çağrısı
Bir sınıf default metodu override etmediyse, çağrı interface'teki gövdeyi kullanır. Çağrı interface tipinden yapılmalıdır: IWriter w = new ConsoleWriter(); w.Write("Merhaba");.
Eğer sınıf kendi gövdesini yazarsa, onunki kullanılır. Default metotlar yardımcı metotlar ve geriye dönük uyumluluk için uygundur. Yeni bir metot eklerken default gövde vermek, eski uygulayan sınıfları bozmaz.
Uygulama Varsayılan yazıcı
IWriter interface'ine void Write(string message) metodu için varsayılan gövde ekle: Console.WriteLine(message);. Main'de IWriter w = new ConsoleWriter(); üretip w.Write("Merhaba") çağır.
Örnek çözümü göster
IWriter içine `void Write(string message) { Console.WriteLine(message); }` ekle. Main içine `IWriter w = new ConsoleWriter(); w.Write("Merhaba");` yaz.
Örnek çözüm:
using System;
interface IWriter
{
void Write(string message)
{
Console.WriteLine(message);
}
}
class ConsoleWriter : IWriter
{
}
class Program
{
static void Main()
{
IWriter w = new ConsoleWriter();
w.Write("Merhaba");
}
}
Kendini test et
-
Default interface metotları ile ilgili hangisi doğrudur?
- Default metotlar static olmalıdır.
- Default metotlar uygulayan sınıfta override edilmelidir.
- Default metotlar yalnızca C# 7'de vardır.
- Default metotlar gövde içeren metotlardır ve geriye dönük uyumluluk sağlar.
Cevabı göster
Default metotlar gövde içeren metotlardır ve geriye dönük uyumluluk sağlar. — Doğru. Default metotlar gövde içerir ve mevcut interface'lere metot eklemeyi güvenli kılar.
-
Eşleştir: default metot parçaları
- gövde
- süslü parantez içinde
- override yoksa
- default gövde kullanılır
- interface tipi
- çağrı yolu
- geriye dönük uyumluluk
- yeni metot güvenli eklenir
-
Boşluğu doldur: default metot gövdesi
interface IWriter { void Write(string message) ____ Console.WriteLine(message); } }Cevabı göster
interface IWriter { void Write(string message) { Console.WriteLine(message); } }