CLR 2.0 和 CLR 4.0 之间的区别

2024-05-02

我阅读了无数关于 C# 4.0 新功能的博客、帖子和 StackOverflow 问题。甚至新的 WPF 4.0 功能也开始公开出现。我找不到但想知道的内容:

  1. 从 C#/WPF 开发人员的角度来看,CLR 4.0 有哪些主要变化?
  2. CLR 4.0 整体上有哪些主要变化?

我认为,在内部,大多数变化都是针对新的动态语言和并行编程。但还有其他重大改进吗?因为语言改进就是语言改进。你只需要新的编译器,除了 1.0/1.1 版本之外,这些功能可以在较低版本的 .Net 中使用(至少其中大部分可以使用)。

如果以上功能是唯一的,则仅对于这些功能,版本更改为 4.0,我认为这是 4.0,因为它基于 .Net 4.0 版本(即 1.0/1.1、2.0 和 3.0/3.5 之后)。版本增量是否合理?

Edited:

正如 Pavel Minaev 在评论中指出的那样,即使这两个功能也是独立于 CLR 的。 3.0 和 3.5 也有速度和其他方面的改进。那么为什么要增加版本呢?


我所知道的一个新的 CLR 事物是接口、结构和委托的一种结构类型形式,其目的是无PIA 支持 http://luke.breuer.com/time/item/Advances_in_the_NET_Type_System/492.aspx- 基本上,它允许运行时处理具有等效定义的不同类型,就好像它们是相同的 - 所以如果两个程序集A and B每个都有一个COM导入的接口IFoo在它们中声明,具有相同的 IID 和相同的成员,运行时会将它们视为等效类型;所以如果有一个实例某个类Foo实施[A]IFoo,你可以将它投射到[B]IFoo,演员阵容将会发挥作用。

另一件事是能够在单个进程中并行托管多个 CLR 版本。例如,您不能在一个进程中托管 1.x 和 2.0,但可以托管 2.0 和 4.0。这样做的主要好处是能够同时加载为任一 CLR 版本编写的插件。

一个小问题是,还有一些异常变得无法捕获,例如StackOverflowException是在 2.0 - 你无法捕捉到AccessViolationException不再,例如。

Also, here http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/PC49.pptx是 PDC 2008 上有关 CLR 4.0 的 PowerPoint 演示文稿。现在可能有点过时,但其中提到的大多数内容似乎都处于测试版中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CLR 2.0 和 CLR 4.0 之间的区别 的相关文章

随机推荐