Sayfalar

23 Ağustos 2019 Cuma

Interfaces

Interface'ler (Arayüzler) sınıfları gruplandırmak, bu sınıflarda zorunlu olarak ortak kullanılacak metotlar, delegate, indexer yada propertiesleri tanımlamak için oluşturulan tanımlayıcı yada gruplandırıcı yapılardır.

"I" ile başlayarak isimlendirilmesi genel kabul görmüş bir kuraldır.
Bir sınıfa yalnızca bir tane ana sınıftan inhetir alırken , Interface'ler ilgili sınıfa birden fazla kez tanımlanabilir.

Interface'ler ierisinde kod bloğu bulunamaz. Sadece kullanılacak metotun ismi tanımlanır.
Interface'ler soyut olduğu için new'lenemezler, field kabul etmezler.

InterFaceler birbirlerine eklenebilirler.
Örn:
 ICustomerDal : ICustomerDal2 : ICustomerDal3


class Program
{
    static void Main(string[] args)
    {
 
        CustomerManager customerManager = new CustomerManager();
        customerManager.Add(new OracleCustomerDal());
        Console.ReadLine();
 
    }
}
 
interface ICustomerDal
{
    void Add();
    void UpDate();
    void Delete();
}
 
class SqlServerCustomerDal : ICustomerDal
{
    public void Add()
    {
        Console.WriteLine("Sql Added");
    }
 
    public void Delete()
    {
        Console.WriteLine("Sql Deleted");
    }
 
    public void UpDate()
    {
        Console.WriteLine("Sql Updateded");
    }
}
 
 
class OracleCustomerDal : ICustomerDal
{
    public void Add()
    {
        Console.WriteLine("Oracle Added");
    }
 
    public void Delete()
    {
        Console.WriteLine("Oracle Deleted");
    }
 
    public void UpDate()
    {
        Console.WriteLine("Oracle Updateded");
    }
 
}
 
class CustomerManager
{
    public void Add(ICustomerDal customerDal)
    {
        customerDal.Add();
    }
 
}

MVC LOADING TOO SLOW ISSUE