我试图创建一个泛型类,它接收基于接口的泛型参数,代码是异常
所以我测试了,我有以下内容
interface InterfaceA { }
interface InterfaceB<T> where T:InterfaceA { }
class ClassA : InterfaceA { }
class ClassB : InterfaceB<ClassA> { }
Run Code Online (Sandbox Code Playgroud)
基本测试
InterfaceB<InterfaceA> my_object_1 = new ClassB(); // Not Working (Compile error)
InterfaceB<InterfaceA> my_object_2 = (InterfaceB<InterfaceA>)new ClassB(); // Not Working (Throw Exception)
InterfaceB<InterfaceA> my_object_3 = new ClassB() as InterfaceB<InterfaceA>; // Working but still null
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么my_object_1,my_object_2和my_object_3出现问题?