2012-06-29 3 views
2

에서 제네릭 형식 매개 변수를 사용하는 방법 나는C#을 인터페이스

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); 
} 

답변

0

당신은 단순히에만

class A 
{ 

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

} 
3

불행하게도, 당신은 인터페이스 자체의 일반적인 유형을 포함 할 필요가있는 방법으로 일반적인 매개 변수를 추가하는 일반적인 방법을 사용할 수 있습니다 :

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

시험해보기 :

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

} 

public interface IInterfaceOne<T> 
{ 

} 

public interface IInterfaceTwo<U> 
{ 

}