Basit bir soru # var (bu yüzden inanıyorum). Ben dil ile yeni başlayan biriyim ve bunları uygulayan arayüzler ve sınıflarla ilgili bir problem yaşadım. SorunArabirimde olmayan sınıf yöntemi
Ben Arayüz arabirimini uygulamak iA
interface iA
{
bool method1
bool method2
bool method3
}
ve 3 sınıflar var: class B
, C
ve D
class B : iA
{
public bool method1
public bool method2
public bool method3
}
B sınıfı bulunmayan başka bir yöntemi olsaydı Arabirim, method4()
diyelim ve aşağıdakilere sahibim:
iA element = new B();
ve sonra kullanmak:
element.method4();
ben tip iA
birinci argüman alır method4()
yok belirten bir hata olacaktı.
Sorun şu: Bir arabirim nesnesine sahip olabilir ve bir sınıfla örneklenebilir ve bu nesnenin sınıfta bir arabirimi, arabirimde olmayan bir yöntemi çağırabilir miyim?
Geldiğim bir çözüm, arabirim ile türetilmiş sınıflar arasında soyut bir sınıf kullanmak, ancak arabirimi kapsam dışı bırakacak IMO kullanmaktı. Tasarımımda sadece arayüzü ve türetilmiş sınıfları kullanmak istiyorum.
'if (öğe tür (B) 'dir) ((B) öğesi) .method4();' bu yardımcı olmalıdır – wudzik
Temiz ve iyi biçimlendirilmiş bir soru soran yeni ve yeni bir kullanıcı. Bu nadir, tebrikler ve hoş geldiniz. :) – Otiel
İyi soru. +1 Gerçek senaryoyu verirseniz, en iyi tasarım yaklaşımını öneriyoruz. –