C# 8.0’dan önce interface’ler yalnızca üyelerin (Metotlar, Özellikler, Olaylar ve Dizin Oluşturucular) bildirimini içerir, ancak C# 8.0’dan itibaren, interface’lerede üye eklemek mümkün hale gelmiştir.
Artık interface’in mevcut uygulamasını bozmadan interface içindeki uygulamasıyla bir metot eklememize izin veriliyor, bu tür bir metot default interface metot olarak isimlendirilir.
Kısacası daha öncesinde sadece şablon olarak kullandığımız interface yapılarının içerisine artık bir koda sahip metot yazabiliriz.
using System;
namespace DefaultInterface
{
internal class Program
{
static void Main(string[] args)
{
Document document = new Document();
document.BlachWhite();
document.Colorful();
IPrint print = document;
print.Start();
}
}
public interface IPrint
{
void Colorful();
void BlachWhite();
public void Start()
{
Console.WriteLine("Yazdırma İşlemi Başladı");
}
}
public class Document : IPrint
{
public void BlachWhite()
{
Console.WriteLine("Siyah Beyaz Yazdır.");
}
public void Colorful()
{
Console.WriteLine("Renkli Yazdır.");
}
}
}