C# Arabirimleri. Örtülü uygulanmasına karşı Açık bir uygulama
Ne arabirimleri uygulama farklılıkları vardırörtülü olarakveaçıkçaC#?
Örtülü kullanmalısınız ve açık kullanmalıyım?
Bir ya da diğer bir artıları ve/veya eksileri vardır?
Microsoft'un resmi kurallar (Framework Design Guidelines İlk Baskı) belirtiyoraçık uygulamaları kullanarak tavsiye edilmezkodu beklenmeyen davranışlar verir.
Bu kılavuz çok bencepre-IoC-zaman içinde geçerliservetim yokken , etrafta arabirimleri.
Kimse bu yönünü de dokunabilir?
CEVAP
Örtülüne zaman sizin sınıfınızın bir üyesi ile arayüz tanımlayın.Açıkne zaman seni arayüz bir sınıf içinde yöntemler tanımlamak. Kulağa karışık geliyor ama ne demek istediğimi biliyorum: IList.CopyTo
örtülü olarak uygulanan olabilir:
public void CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
ve açıkça gibi:
void ICollection.CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
Fark örtülü olarak sınıf üzerinden erişilebilir olduğundan emin olmak arabirimi olarak dökme olarak sınıf olarak döküm zaman oluşturduğunuz. Açık uygulama sadece arayüz olarak kendini döküm zaman erişilebilir olmasını sağlar.
MyClass myClass = new MyClass(); // Declared as concrete class
myclass.CopyTo //invalid with explicit
((IList)myClass).CopyTo //valid with explicit.
Açık öncelikle iki uygulamaları ihtiyacım olduğunda uygulama temiz tutmak, ya da için kullanıyorum. Ama ne olursa olsun ben nadiren kullanıyorum.
Diğerleri yayınlayacağız kullanmak/kullanmak için daha fazla sebep vardır eminim.
Her arkasında harika bir çıkarım için bu iş parçacığı next post bkz.
Açık vs örtülü SQL katıldı...
Neden alıcı arabirimi, yalnızca açık b...
App başvurular halka açık olmayan seçi...
Neden görünümünde hazırda açık oturum ...
Nasıl vim iki açık dosyaları (böler) p...