soc*_*soc 11 c# clr covariance contravariance c#-4.0
这是CLR的限制还是现有代码存在兼容性问题?
这与C#4.0中委托合并的混乱变化有关吗?
编辑:如果没有在CLR上运行的限制,是否可以使用使用共同/逆变的语言?
你将要阅读Eric Lippert关于它为何如此工作的帖子.缺点是它们允许尽可能多的差异,而不允许开发人员在编程中犯下可能导致难以追踪错误的错误.4.0中的差异量大大超过了3.0规则,从我的理解来看,它是对开发人员有利的东西和允许安全的东西之间的平衡,而不会因无意识的错误而引起太多的麻烦.
http://blogs.msdn.com/b/ericlippert/archive/tags/covariance+and+contravariance/default.aspx
简单回答:这是一个CLR限制.
(我在任何地方都没有看到一个好的,具体的解释......我不记得在Eric的博客系列中看过一个关于它的内容,尽管我可能在某个地方错过了它.)
有一件事我会说的是,无论是代表和接口已经形成了真正的类型"间接层"; 如果愿意,可以查看方法或类.从一个视图转换到另一个视图是相当合理的.对于我来说,实际的阶级感觉就像是一个更具体的表现形式 - 从一个具体的表现形式转移到另 这是一个非常敏感的解释,而不是真正的技术限制.
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |