Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-具有多个类型的泛型类型,包括具有_C#_.net_Generics - Fatal编程技术网

C#-具有多个类型的泛型类型,包括具有

C#-具有多个类型的泛型类型,包括具有,c#,.net,generics,C#,.net,Generics,我有以下通用类: public class DomainValidator<TRequest> : IValidator<TRequest> where TRequest : IRequest, IRequest<object> { } 但是下面的类RequestThatDoesWorkValidator似乎可以工作,因为RequestThatDoesWork为IRequest提供了一个类型: public class RequestThatDoesWork

我有以下通用类:

public class DomainValidator<TRequest> : IValidator<TRequest> where TRequest : IRequest, IRequest<object>
{
}
但是下面的类
RequestThatDoesWorkValidator
似乎可以工作,因为
RequestThatDoesWork
IRequest
提供了一个类型:

public class RequestThatDoesWorkValidator : DomainValidator<RequestThatDoesWork>
{

}

public class RequestThatDoesWork : IRequest<List<string>>
{

}
公共类请求DoesWorldValidator:DomainValidator
{
}
Doeswork的公共类请求:IRequest
{
}

我希望这更有意义

您需要将类型参数添加到自己的类型中,以作为嵌套参数传递:

public class DomainValidator<TRequest, TInner> : IValidator<TRequest> 
       where TRequest : IRequest, IRequest<TInner>
公共类域验证程序:IValidator
TRequest在哪里:IRequest,IRequest

您能否发布一段代码片段,向我们展示哪些内容无法编译?听起来好像你在试图将DomainValidator强制转换为IRequest,这没有任何意义。@JohnWu请查看我更新的queston。当你说“我为
TRequest
的类型指定了2种类型”时,你是想
TRequest
实现列出的两个接口,还是其中一个接口?因为您目前拥有的需要
TRequest
来满足列出的两个接口。事实上,你不能说“需要
TRequest
来实现
IRequest
IRequest
”。另请看@AakashM谢谢,这就是我想要的。我需要一个基本界面。请看我更新的问题。我不知道你在问什么。
public class DomainValidator<TRequest, TInner> : IValidator<TRequest> 
       where TRequest : IRequest, IRequest<TInner>