2010-08-16 7 views
0

내 결과 유형이 이어야 함을 알 수 있습니까?이 인터페이스에는 MonadType < arg 유형>이 필요합니까? 내가 오류로 얻을자유형 제네릭 유형을 유형 매개 변수로 사용

interface IMonad<MonadType> // where MonadType : GenricType<> 
{ 
    MonadType<T1> unit<T1>(T1 t) 
    Func<MonadType<T1>, MonadType<T2>> map<T1, T2>(Func<T1, T2> f); 
} 

: 형식 매개 변수 'MonadType가'형의 인수

답변

0

없음을 사용할 수 없습니다, 당신은 .NET의 제네릭이 작업을 수행 할 수 없습니다. 당신이 원하는 것은 MonadType 유형 매개 변수 자체가 하나의 일반 매개 변수를 가져야한다는 것을 지정하는 것입니다. .NET 유형 시스템은 해당 제약 조건을 나타낼 수 없습니다.

다음은 C#에서 일반 모나크를 가짜로 만드는 방법 중 하나입니다. http://sandersn.com/blog//index.php/2010/04/23/faking-type-classes-in-c

관련 문제