Genel

2013-01-25 34 views
5

olan kısıtlamalara sahip genel yöntemler Yapmak istediğim, genel bir türü, bir kısıtlamaya sahip parametre olarak alan bir yönteme sahip olmaktır. Ancak, sınırlama tip de ikinci genel bir tür olan, ancak yöntem ikinci yazarak ne olursa olsun çalışmak isteyen:Genel

public class IEvent<T> where T : EventArgs { } 
public class EventManager 
{ 
    public void DoMethod<T>() where T: IEvent<???> 
    { 
    } 
} 

Özellikle, benim EventManager sınıf olayın her türlü alacak yaşamaya çalışıyorum ve sonra onunla bir şeyler yapın. Aşırı derecede karmaşık mıyım, yoksa bu yapılabilir mi?

void DoMethod<TEvent, TArgs>() where TEvent : IEvent<TArgs> where TArgs : EventArgs {} 

cevap

11

İkinci bir kısıtlamayı kullanmak zorunda.

public class IEvent<T> where T : EventArgs { } 
public class EventManager 
{ 
    public void DoMethod<T, U>() where T : IEvent<U> where U : EventArgs 
    { 
    } 
} 
1

bu deneyin:

İlgili konular