C# Interfaces (Arayüzler)

C# Interfaces (Arayüzler)

C#'da arayüzler (interfaces) nesne yönelimli programlamada oldukça önemli bir kavramdır. Bir arayüz, bir veya daha fazla yöntem ve özellik bildirimi içeren bir yapıdır. Bir sınıfın(class) veya yapının(struct) belirli bir arayüzü uygulaması durumunda, bu sınıf veya yapı, arayüzde tanımlanan tüm yöntemleri ve özellikleri uygulamak zorunda kalır.

Arayüz Tanımlama:


interface IArayuzAdi
{
    // Yöntem bildirimleri
    void BirMetod();
    // Özellik bildirimleri
    int BirProperty { get; set; }
}


Arayüz Kullanımı
Bir sınıfın bir arayüzü kullanması iki nokta üst üste(:) ile mümkün olabilmektedir. Bu işleme implementasyon (implementation) denmektedir; interface-implement.

class SinifAdi : IArayuzAdi
{
    // Arayüzden gelen yöntemlerin/imzaların uygulanması gerekir
    public void BirMetod()
    {
        // Metodun gövdesi burada olmalı
    }
    // Arayüzdeki özelliklerin/imzaların uygulanması gerekir
    public int BirProperty { get; set; }
}

Birden Fazla Arayüz Kullanımı
Aralarına virgul koymak suretiyle birden fazla sayıda interface imlement edilebilir. Böylece implementasyon alan class, implementasyon aldığı bütün arayüzlerin metotlarını uygulamak durumundadır.

interface IArayuz1
{
    void Metot1();
}

interface IArayuz2
{
    void Metot2();
}

class SinifAdi : IArayuz1, IArayuz2
{
    // IArayuz1 arayüzünden gelen yöntemin uygulanması
    public void Metot1()
    {
        // Metot 1 gövdesi
    }

    // IArayuz2 arayüzünden gelen yöntemin uygulanması
    public void Metot2()
    {
        // Metot 2 gövdesi
    }
}

Arayüzlerin Önemi

  • Polimorfizm: Farklı sınıflar arasında aynı arayüzü uygulayarak farklı nesneleri aynı şekilde ele alabilirsiniz.
  • Sınıf Hiyerarşilerinin Geçilebilirliği: Arayüzler, sınıf hiyerarşileri arasında geçişkenlik sağlar. Yani bir sınıfın birden fazla arayüzü uygulayabilmesi, bu sınıfın farklı amaçlar için kullanılabilirliğini artırır.
  • Sıkı Kapsülleme: Arayüzler, sınıflar arasında sıkı bir kapsülleme sağlar, yani sınıfın nasıl davranması gerektiği konusunda bir sözleşme sağlar.
  • Test Edilebilirlik: Arayüzler, kodunuzu daha modüler ve test edilebilir hale getirir. Arayüzleri kullanarak bağımlılıkları azaltabilir ve birim testlerini daha kolay yapabilirsiniz.

Infaces(arayüzler), C#'da polymorphism (çok biçimlilik), encapsulation (kapsülleme) ve inheritance (kalıtım) gibi nesne yönelimli programlamanın temel prensiplerini destekler. Bu nedenle, büyük ve esnek yazılımlar geliştirilirken sıklıkla kullanılırlar.

Randevu

Hakkımda


Şaban Çetin

...

İletişim Formu


Sosyal Medya


...

...

...

© Copyright: www.griadam.com.tr