CodeBlanks Logo Icon CodeBlanks

Default interface metotları

C# kursu · Orta seviye · Ders 50/116

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

  1. 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.

  2. 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
  3. 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);
        }
    }

Orta seviye bölümündeki tüm dersler