一些代码来复制问题:
using System;
public abstract class Response { }
public abstract class Request<T> where T : Response { }
public class LoginResponse : Response { }
public class LoginRequest : Request<LoginResponse> { }
public class Program
{
static void Main(string[] args)
{
LoginRequest login = new LoginRequest();
/* Error: Cannot implicitly convert type 'LoginRequest' to 'Request' */
Request<Response> castTest = login;
/* No Error */
Request<LoginResponse> castTest2 = login;
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,LoginRequest类是一个Request <Response>,因为它继承自Request <T>,而LoginResponse继承自Response,所以任何人都可以告诉我为什么我得到编译器错误?
注意:我也试过一个明确的演员