.Net数据类型存储在哪里?
答案 0 :(得分:7)
如果你的意思是“数据存储在内存中 - 在堆栈上或堆上”,它会变得非常复杂,部分取决于语言。
我写过an article about it,其中详细介绍了我在此重复的内容。简单的解释,例如经常重复的“值类型存在于堆栈中,引用类型存在于堆上”是非常有缺陷的,引用类型中int
变量的明显反例 - 该变量的值将是始终存储在堆上,即使int
是值类型。
但是,你也应该明智地阅读Eric Lippert的blog post about the matter - 这是一个实施问题,开发人员往往对此过于担心。 C#团队可以决定在更高版本中更改所有内容,并创建一个包含所有局部变量的新对象(而不仅仅是捕获的局部变量)。
不可否认,这是一个重要的实现细节 - 你在堆栈上放多少会影响堆栈的深度等等 - 但我们可能应该花很多时间去思考它。
如果不是您打算提出的问题,请澄清一下。例如,你的意思是:
答案 1 :(得分:0)
所有核心CTS类型,如Int16,Int32,Int64,String,Byte等,都在MSCorLib.dll中定义。该文件可以在C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727目录中找到。
所有其他特殊用途类型和类都存储在各自的FCL [Framework Class Library]程序集中。与Windows窗体开发相关的所有类型都可以在System.Windows.Form。 .dll中找到,所有与web / asp.net开发相关的类型都在System.Web。 .dll中定义。您可以在本地计算机的GAC中找到这些和相关的程序集。
答案 2 :(得分:-1)
它们被“存储”在各种dll中。