VB.NET静态变量存储在哪里?

VB.NET静态变量存储在哪里?,vb.net,memory-management,virtual,shared,Vb.net,Memory Management,Virtual,Shared,我想知道VB.NET局部静态变量存储在程序的虚拟地址空间中的什么位置,以及子程序/方法如何在调用之间保留其值 为了了解进程的VB.NET虚拟地址空间,我在网上进行了大量搜索。Linux上运行的Java和C有很多图表和解释,其中包括虚拟内存中的一个区域,称为“共享”或“数据”,但很难找到关于VB.NET的具体信息。据我所知,.NET没有使用名为“共享”的进程的虚拟地址空间中的区域。我的问题是,局部静态变量的数据存储在哪里,以及子程序/方法在每次调用之间如何重新访问它?直观地说,我假设共享变量的数据

我想知道VB.NET局部静态变量存储在程序的虚拟地址空间中的什么位置,以及子程序/方法如何在调用之间保留其值

为了了解进程的VB.NET虚拟地址空间,我在网上进行了大量搜索。Linux上运行的Java和C有很多图表和解释,其中包括虚拟内存中的一个区域,称为“共享”或“数据”,但很难找到关于VB.NET的具体信息。据我所知,.NET没有使用名为“共享”的进程的虚拟地址空间中的区域。我的问题是,局部静态变量的数据存储在哪里,以及子程序/方法在每次调用之间如何重新访问它?直观地说,我假设共享变量的数据根据大小存储在其中一个堆(LOH或SOH)上,并且子程序/方法在其堆栈上有一个引用。但是如果子程序结束,堆栈帧将被删除,引用将丢失。它如何重新获得这一参考

C++和C#静态变量有点不同,例如在C#编程语言中,只能使用类成员静态变量(C++允许全局静态变量,也允许函数的局部静态变量)。
有关内存分配的一些详细信息,您可以查看,例如:“Static Keyword Demystified”[^](C#),静态变量存储在哪里(在C/C++)?[^](C++)。

通过一些创造性的谷歌搜索,我发现了一篇旧的msdn杂志文章,镜像,原始版本显然只能作为一个文件提供。这些细节有点超出了我的理解范围,但这能回答这个问题吗?这个问题是关于VB.NET的,而不是C++或C(我相信你已经把这个问题解释成“静态变量存放在哪里?”而不是“存储在VB.NET中的静态变量”的位置。