相关疑难解决方法(0)

C#4.0中的通用差异

C#4.0中的通用差异已经实现,可以在没有异常的情况下编写以下内容(这将在C#3.0中发生):

 List<int> intList = new List<int>();
 List<object> objectList = intList; 
Run Code Online (Sandbox Code Playgroud)

[非功能性示例:请参阅Jon Skeet的回答]

我最近参加了一个会议,其中乔恩斯基特给通用差异的很好的概述,但我不知道我完全得到它-我理解的重要性inout关键词,当谈到禁忌和协变,但我我很好奇幕后发生的事情.

执行此代码时CLR会看到什么?是隐式转换List<int>List<object>或者它是否只是构建在我们现在可以在派生类型之间转换为父类型?

出于兴趣,为什么在以前的版本中没有引入这个,主要的好处是什么 - 即真实世界的使用?

关于Generic Variance的这篇文章的更多信息(但问题非常过时,寻找真实的,最新的信息)

.net-4.0 covariance contravariance generic-variance c#-4.0

16
推荐指数
3
解决办法
3200
查看次数