2013-01-25 37 views
5

Điều tôi muốn làm là có một phương thức lấy kiểu chung làm tham số có ràng buộc. Tuy nhiên, loại của chế cũng có một kiểu generic thứ hai, nhưng tôi muốn phương pháp này để làm việc bất kể những gì gõ thứ hai là:Phương pháp chung với các ràng buộc chung là

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

Cụ thể, tôi đang cố gắng để có lớp EventManager tôi nhận được bất kỳ loại sự kiện và sau đó làm một cái gì đó với nó. Tôi có làm quá nhiều thứ hay không?

Trả lời

11

Bạn phải sử dụng một hạn chế thứ hai:

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

Hãy thử điều này.

public class IEvent<T> where T : EventArgs { } 
public class EventManager 
{ 
    public void DoMethod<T, U>() where T : IEvent<U> where U : EventArgs 
    { 
    } 
} 
Các vấn đề liên quan