Web Tasarım Merkezi » Csharp Makaleleri

   C# ta Interface (Arayüzler)
 

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();
           
          
        }
    }

 

 

   Yazar: Özgür ÖZMEN Tarih:22.11.2008 06:32:00