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