小编Cal*_*582的帖子

使用as关键字的接口异常whitout强制转换

我试图创建一个泛型类,它接收基于接口的泛型参数,代码是异常

所以我测试了,我有以下内容

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出现问题?

c# interface

0
推荐指数
1
解决办法
66
查看次数

标签 统计

c# ×1

interface ×1