奇怪的问题...协方差还在3.5/2.0?
我从例子中实现了协方差。
我的目标FW是4.0。
如何。我想看看它是否在3.5/2失败 - >但它不会。
它不能是因为协方差是从FW4.0。
改为3.0后,我建立和看到:(+在运行时不会失败)
奇怪的问题...协方差还在3.5/2.0?
我从例子中实现了协方差。
我的目标FW是4.0。
如何。我想看看它是否在3.5/2失败 - >但它不会。
它不能是因为协方差是从FW4.0。
改为3.0后,我建立和看到:(+在运行时不会失败)
协方差框架3的支持,但没有实现编译器。您正在使用的编译器4目标框架3.
这是在埃里克利珀博客文章中提到,我去看看我能找到它..
编辑
为了进一步澄清,:通用语言运行时和C#编译器(csc.exe)是两个独立的东西。在2.0版引入CLR的协变和反变量。他们直到版本4才被引入到C#中。您正在使用Compiler 4来构建版本3 IL,这就是它的工作原理。
我该如何让它失败? – 2012-02-09 12:05:12
使用.NET 3.0或3.5编译器。 – 2012-02-09 12:06:18
我应该卸载fw4吗?是否有任何配置工作在清洁模式3.0? – 2012-02-09 12:07:11
自2.0版本以来,CLR支持协变和逆变类型参数。它只是C#语言,直到版本4才提供任何语法。
我不明白如何在fw2中支持它。从我读的地方开始,它的编号为4. – 2012-02-09 12:13:13
包括C#在内的所有.NET语言都被转换为相同的中间语言IL(类似于CLR的汇编语言)。现在,IL支持许多功能(如协变和反变换),但并非所有语言都提供使用它们的语法。在版本4中添加了C#中使用此功能的语法。 – Botz3000 2012-02-09 12:16:22
因此我无法让它失败吗? (即使我使用2.0的csc.exe?)作为myles回答? – 2012-02-09 12:18:35
尝试使用编译器的框架2.0(3.5)版本,而不是4.0编译器。 – 2012-02-09 12:07:02
@TetsujinnoOni没有改变目标FW就像在指定的目标工作? – 2012-02-09 12:08:11
公共语言运行时和C#编译器(csc.exe)是两个独立的东西。在2.0版引入CLR的协变和反变量。他们直到版本4才被引入到C#中。您正在使用Compiler 4来构建版本3 IL,这就是它的工作原理。 – 2012-02-09 12:30:14