2013-01-25 32 views
5

私がしたいのは、ジェネリック型を制約付きのパラメータとしてとるメソッドを持つことです。しかし、制約のタイプは、第二の一般的なタイプがありますが、私はこの方法が第二のタイピングが何であるかに関係なく仕事をしたい:一般的な制約を持つ汎用メソッド

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

具体的には、私は私のEventManagerクラスは、イベントのいずれかの種類を受ける持ってしようとしていますそしてそれで何かをしてください。私は物事を過度に複製しているのですか?あなたが第2の制約を使用する必要が

答えて

11

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

はこれを試してみてください。

public class IEvent<T> where T : EventArgs { } 
public class EventManager 
{ 
    public void DoMethod<T, U>() where T : IEvent<U> where U : EventArgs 
    { 
    } 
} 
関連する問題