2012-04-22 13 views
7
public <T extends java.util.EventListener> T[] getListeners(final Class<T> listenerClass) { 
    ... 
} 

Yukarıdaki java jeneriklerin eşdeğer C# genericics notasyonu nedir?C# generics & delirmiyor <a0></ a0>

Parametre dinleyicisi Sınıf bir nesne değil, bir & türünde olacaktır. Fakat T nesnesi belirli bir hiyerarşiye ait olmalı.

+0

Sınıfı ne anlama geliyor? – Gabe

+0

java'da: MyListener.class'dan geçiyorum .. MyListener sınıf adıdır .. metodu – pulancheck1988

+0

param olarak nesneye izin vermez Sadece T 'nin ne olduğunu bulmak mümkün mü? Eğer öyleyse, C# içinde gerekli değildir, çünkü 'T' yöntem içinde kullanılabilir. – Gabe

cevap

13
public T[] GetListeners<T>() where T : EventListener 
{ 
} 
+0

Param için ne oldu? Bu tür nesnenin sınıf (tip) yöntemi döndürme dizisini iletiyorum – pulancheck1988

+3

Dönüş türünün MyListener türünde bir dizi olduğunu varsayalım. Bu yöntemi şöyle çağırırsınız: MyListener [] mylisteners = GetListeners (); –

+3

@ pulancheck1988: Java’dan farklı olarak C#’de genel argüman yeniden tanımlanabilir ve erişilebilir. Yani, 'T.class' Java'da yasadışı olsa da, C# eşdeğeri türkçe (T) 'mükemmel bir şekilde meşrudur ve size' T 'türüne karşılık gelen bir 'Tür' nesnesini döndürür. "Sınıf " nesnesinin etrafından geçen Java deyimi, Java'nın jenerik uygulamalarının sınırlandırılması için bir geçici çözümdür; C# aynı sınırlamaya sahip olmadığı için deyimler farklıdır. –

İlgili konular