2

私は持っている

public interface IPersistedModel<TModel, TIdentifier>

上記のジェネリック型パラメーターを使用するジェネリック メソッドがあるインターフェイスを定義したいと思います。これを行う方法はありますか?私は以下を試しましたが、どちらもコンパイルしません。

public interface IModelCollection1<IPersistedModel<TModel, TIdentifier>>
{
    IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}

また

public interface IModelCollection2<T> where T : IPersistedModel<TModel, TIdentifier>
{
    IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}
4

3 に答える 3

3

残念ながら、インターフェイス自体にジェネリック型を含める必要があります。

public interface IModelCollection<T, TModel, TIdentifier> 
       where T : IPersistedModel<TModel, TIdentifier>
{
    IEnumerable<TModel> ReadCollection(TIdentifier identifier);
}
于 2012-06-29T15:33:41.123 に答える
0

そのメソッドにのみジェネリックパラメーターを追加するジェネリックメソッドを使用するだけです

class A
{

static void Swap<T>(ref T lhs, ref T rhs)
{
    T temp;
    temp = lhs;
    lhs = rhs;
    rhs = temp;
}

}
于 2012-06-29T15:33:31.600 に答える
0

これを試して:

public interface Ione <T, U> where T : IInterfaceOne<T> where U : IInterfaceTwo<U>
{

}

public interface IInterfaceOne<T>
{

}

public interface IInterfaceTwo<U>
{

}
于 2012-06-29T15:35:51.730 に答える