我没有参加PDC 2008,但我听到一些消息称C#4.0被宣布支持Generic协方差和反差异.也就是说,List<string>可以分配给List<object>.怎么会这样?
在Jon Skeet的C#深度书中,解释了为什么C#泛型不支持协方差和反方差.它主要用于编写安全代码.现在,C#4.0改为支持它们.它会带来混乱吗?
有人知道有关C#4.0的细节可以给出一些解释吗?
在Java中,我可以执行以下操作:(假设Subclass扩展Base):
ArrayList<? extends Base> aList = new ArrayList<Subclass>();
Run Code Online (Sandbox Code Playgroud)
C#.NET中的等价物是什么?? extends显然没有关键字,这不起作用:
List<Base> aList = new List<Subclass>();
Run Code Online (Sandbox Code Playgroud)