.Net数据类型存储在哪里?
发布于 2009-05-14 10:21:27
所有核心CTS类型,如Int16、Int32、Int64、String、Byte等都是在MSCorLib.dll中定义的。此文件位于C:\Windows\Microsoft.NET\Framework\v2.0.50727目录中。
所有其他特殊用途的类型和类都存储在它们各自的FCL框架类库程序集中。与所有与windows窗体开发相关的类型一样,所有与web/asp.net开发相关的类型都在System.Web..dll中定义。您可以在本地计算机的GAC中找到这些和相关的程序集。
发布于 2009-05-14 07:23:55
如果你的意思是“数据存储在内存中的什么地方--堆栈还是堆上”,这就变得相当复杂,而且在一定程度上取决于语言。
我已经编写了an article about it,我不想在这里重复它的详细内容。诸如经常重复的“值类型在堆栈上,引用类型在堆上”之类的简单解释存在巨大缺陷,引用类型中的int变量的明显反例-尽管int是值类型,但该变量的值将始终存储在堆中。
然而,阅读Eric Lippert的blog post about the matter也是明智之举--这是一个实现问题,开发人员往往对此过于担心。C#团队可以决定在以后的版本中将其全部更改,并创建一个包含所有局部变量(而不仅仅是捕获的变量)的新对象。
诚然,这是一个重要的实现细节-你放在堆栈上的多少会影响你的堆栈的深度,等等-但我们可能应该花很多时间来纠结于它。
如果这不是你想问的问题,请澄清它。例如,您可以表示:
发布于 2009-05-14 07:05:15
它们被“存储”在各种dll中。
https://stackoverflow.com/questions/861926
复制相似问题