Sim*_*tes 5 .net c# compiler-construction generics
我目前正在开发一个通用请求/响应抽象,以便在接收基于请求的预定义响应类时向组件发送任意类请求.
我有两个基类:
abstract class RequestClass<T>
where T : ResponseClass
{
}
abstract class ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)
因此,请求类定义其响应类.为了演示这种情况,我有以下示例类:
class DoSomethingRequest : RequestClass<DoSomethingResponse>
{
}
class DoSomethingResponse : ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)
现在要处理请求,我有以下方法:
TResult SendRequest<T, TResult>( T Request )
where T : RequestClass<TResult>
where TResult : ResponseClass
{
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好; 但是,虽然我希望以下工作正常,但编译器无法推断出以下请求的类型参数:
DoSomethingResponse Response = SendRequest( new DoSomethingRequest() );
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?编译器应该具有所需的所有信息,并推断"DoSomethingRequest是DoSomethingResponse的RequestClass"并且编译没有问题.有没有其他方法可以使我的方案工作?
感谢帮助.在此先感谢您的问候!-Simon