![]() |
1
2
您的第二个断言是按设计失败的。当你写作时
它实际上意味着“ParentInterface”现在是一个类型参数的符号(这样做太令人困惑了,实际上,它完全让您困惑了)。 写作
然后将yout类型参数(是的,名为“ParentInterface”)设置为ChildInterface类型。因此,Childclass只能分配给ParentClass<ChildInterface>。 最后,您应该确保在定义类型参数时遵循约定,这将大大减少您的困惑,例如。
用“I”标记接口也将大大增强理解,例如。
我怀疑你想要的东西在我们得到c#4.0之前是不可能的:
不可分配给
目前没有泛型的协/反方差。 |
![]() |
2
0
这不是吗 the covariance/contravariance thing ? 那只是C目前不支持的东西,但C 4.0可能支持。 |
![]() |
3
0
你不能,因为C#3.0不支持这种方差。在C#4.0中,您应该能够。
再举一个例子,假设你有一个
问题是
然后试图将其添加到
你会得到一个例外,因为
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |