C# ‘ta 5 ana tipten biri interface dir. Interfaceler içerisine bir kod içermeyen abstract üyelerden oluşan, erişim belirleyicisi olmayan kendisinden türeyenlere rehberlik eden, arayüzün sahip olduğu tüm davranışları kendisini çağıranları yönlendirip kılavuzluk edendir.
- Tanımlanırken interface ile başlanılır. Genelikle baş harfi I ile başlanılır.Erişim belirleyici almazlar ama kendiliğinden publicdirler.
- Bilinçsiz olarak abstractırlar. Bilinçli olarak abstract üyelere işaret edilmez.
- Interfacelerin içerisinde metot özellik, olay ve temsilci bulunabilir.
- Arayüzdeki metodları static olarak belirtemeyiz.
- Field içermezler.
- Bir arayüzden sınıf, yapı yada başka bir arayüz türetilebilir.
Bu kadar tanımdan sonra gelelim örneğimize,
interface IDisk
{
void Marka();
void Kapasite();
}
interface IGsm
{
void Marka();
void KamerasıVarmi();
}
interface IMonitor
{
void KacInc();
void Marka();
}
class Sinif : IMonitor, IDisk, IGsm
{
public void KacInc()
{
Console.WriteLine("Markası Samsung'dur.");
}
void IMonitor.Marka()
{
Console.WriteLine("17 inc Lcd Monitör.");
}
#region IGsm Members
void IGsm.Marka()
{
Console.WriteLine("Cep telofonumun markası Nokia dır.");
}
public void KamerasıVarmi()
{
Console.WriteLine("Evet kamerası var.");
}
#endregion
#region IDisk Members
void IDisk.Marka()
{
Console.WriteLine("Markası SanDisk'dir.");
}
public void Kapasite()
{
Console.WriteLine("4 GB");
}
#endregion
}
class Program
{
static void Main(string[] args)
{
IDisk disk;
IGsm gsm;
IMonitor monitor;
Sinif s = new Sinif();
disk = s;
disk.Marka();
disk.Kapasite();
Console.WriteLine();
gsm = s;
gsm.Marka();
gsm.KamerasıVarmi();
Console.WriteLine();
monitor = s;
monitor.Marka();
monitor.KacInc();
}
}