5

私がやりたいのは、ジェネリック型を制約付きのパラメーターとして受け取るメソッドを持つことです。ただし、制約の型には2番目のジェネリック型もありますが、2番目の型に関係なくメソッドが機能するようにしたい:

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

EventManager具体的には、クラスにあらゆる種類のイベントを受け取り、それを使って何かをさせようとしています。私は物事を過度に複雑にしていますか、それとも実行可能ですか?

4

2 に答える 2

11

2 番目の制約を使用する必要があります。

void DoMethod<TEvent, TArgs>() where TEvent : IEvent<TArgs> where TArgs : EventArgs {}
于 2013-01-25T03:09:26.253 に答える
1

これを試して。

public class IEvent<T> where T : EventArgs { }
public class EventManager
{
    public void DoMethod<T, U>() where T : IEvent<U> where U : EventArgs
    {
    }
}
于 2013-01-25T03:20:21.857 に答える