71得票5回答
什么是"根"?

垃圾回收中的根是什么? 我已经阅读了根的定义:"程序可以访问的任何引用",并且“活动对象”的定义是正在使用的对象,可以是局部变量、静态变量。 我有点困惑于区分根和活动对象之间的差别。 什么是根路径?根和活动对象如何工作? 有人能详细解释一下吗?

67得票7回答
CLR是虚拟机吗?

我读了一本书,提到 .net 的 CLR 是一个虚拟机。有人能证明这个说法吗?为什么在某些开发平台上需要虚拟机的概念呢? 难道不能开发一个原生框架 [没有虚拟机],完全面向对象和与 .net 一样强大吗? 这本提到 CLR 是虚拟机的书是《专业 .Net Framework 2.0》。

66得票5回答
在一个值为Func的开关与字典中,哪个更快,为什么?

假设有以下代码:private static int DoSwitch(string arg) { switch (arg) { case "a": return 0; case "b": return 1; case "c": ...

64得票3回答
性能:从通用类型派生的类型

我遇到了一个性能问题,但不太理解其中的原因。我知道如何修复它,但不明白为什么会出现这种情况。这只是为了好玩! 让我们来看代码。我尽可能简化了代码以重现此问题。 假设我们有一个通用类。它内部有一个空列表,并在构造函数中对T执行某些操作。它有一个Run方法,在该方法中调用列表上的IEnumerab...

62得票7回答
CLR和CLI - 有什么区别?

我想知道CLR和CLI的确切区别是什么?从目前为止我所读的内容来看,似乎CLI是CLR的子集。但难道CLR中不是所有的东西都是必须的吗?到底可以从CLR中省略什么来创建CLI呢?

62得票7回答
如何在运行时检测.NET版本4.5正在运行您的代码?

我从http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541下载安装了.NET 4.5开发者预览版,它“替代”了.NET 4.0版本。 然而,检测.NET框架版本的旧方法似乎返回4.0(在我的电...

61得票8回答
在.NET 2.0运行时上使用LINQ

一个启用了LINQ的应用程序能够在只安装了.NET 2.0运行时的机器上运行吗? 从理论上讲,LINQ仅仅是一种语法糖,生成的IL代码应该与在.NET 2.0中生成的代码相同。 我如何在不使用.NET 3.5库的情况下编写LINQ?它能在.NET 2.0上运行吗?

59得票4回答
.NET Framework、CLR和Visual Studio版本号之间有什么关联?

随着.NET 4.0和Visual Studio 2010的最新发布,跟踪.NET Framework版本在哪个CLR版本上构建以及属于哪个(些)Visual Studio版本变得越来越困难。 是否有一张明确的表格显示这些关系呢?

58得票4回答
C#中的堆栈容量

请问C#中的堆栈容量是多少。 我正在尝试使用包含30,000个项目的数组来构建一个三维网格封闭对象。

57得票4回答
强制使用x86 CLR在“Any CPU” .NET程序集上。

在.NET中,“平台目标:任何CPU”编译选项允许.NET程序集在x64机器上以64位方式运行,在x86机器上以32位方式运行。同时,也可以使用“平台目标:x86”编译选项强制程序集在x64机器上以x86方式运行。 是否可以使用“任何CPU”标志运行程序集,但是确定它是否应在x86或x64 ...