Implicit vs Explicit Interface Implementation: Ne Zaman Kullanılır

# Implicit vs Explicit Interface Implementation: Ne Zaman Kullanılır

Bir interface uyguladığında iki yol var: implicit (örtülü) ve explicit (açık). Fark basit görünse de, hangisini kullanacağın projenin ihtiyacına göre değişir.

Implicit, interface üyelerini sınıfın normal üyeleri gibi yazarsın. Dışarıdan doğrudan erişebilirsin.

1public interface IKisi
2{
3void Selamla();
4string Ad { get; set; }
5}
6
7public class Insan: IKisi
8{
9public string Ad { get; set; }
10
11public void Selamla()
12{
13Console.WriteLine($"Merhaba, ben {Ad}");
14}
15}
16
17// Kullanım
18Insan insan = new Insan { Ad = "Ahmet" };
19insan.Selamla(); // Doğrudan çalışır
20insan.Ad = "Mehmet";

Çıktı:

1Merhaba, ben Ahmet

Implicit kullan eğer:
- Metodun sınıfın temel işleviyse
- Dışarıdan sık erişilecekse
- Basit ve okunabilir kod istiyorsan

Explicit'te metod yalnızca interface üzerinden erişilebilir. Sınıf örneğinden direkt çağıramazsın.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1public interface IKisi
2{
3void Selamla();
4}
5
6public interface IIşçi
7{
8void Selamla(); // Aynı isimde metod
9}
10
11public class Insan: IKisi, IIşçi
12{
13void IKisi.Selamla()
14{
15Console.WriteLine("Kişi olarak selamlaşıyorum");
16}
17
18void IIşçi.Selamla()
19{
20Console.WriteLine("İşçi olarak selamlaşıyorum");
21}
22}
23
24// Kullanım
25Insan insan = new Insan();
26// insan.Selamla(); // HATA! Doğrudan erişilemez
27
28IKisi kisi = insan;
29kisi.Selamla(); // Çalışır
30
31IIşçi işçi = insan;
32işçi.Selamla(); // Farklı çıktı

Çıktı:

1Kişi olarak selamlaşıyorum
2İşçi olarak selamlaşıyorum

Explicit kullan eğer:
- Aynı isimde iki interface metodu varsa (çakışma)
- Metodun sadece interface aracılığıyla erişilmesini istiyorsan
- İç işleri gizlemek istiyorsan

Çoğu zaman implicit tercih et. Daha okunabilir ve kullanışlı. Explicit sadece zorunlu olduğunda, yani:
- Aynı metod adı iki interface'de varsa
- Metodun gizli kalması gerekiyorsa

| Seçenek | Erişim | Kullanım Alanı |
|---------|--------|----------------|
| Implicit | Doğrudan | Normal, sık kullanılan metodlar |
| Explicit | Interface üzerinden | Çakışma veya gizleme gerekiyorsa |

Doğru seçim yaparak kodunu temiz ve anlaşılır tut.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz