好吧,这道题不完全是一道编程题,但这才是真正能让编程变得更实用、更容易实现的问题。
这个问题是因为每次我写 int c=10;
或 MyClass objMyClass=new MyClass();
我想看看内存中的位置该值已创建(尽管我们现在可以将地址视为十六进制值)。
我们能看到(当我们声明一个变量时)它在内存中的创建位置吗?在哪个状态下,即:C#->IL->Machine Language
,是内存中存在的变量。现在不同的事件和函数如何更新它的值。这就像我的 CPU 模拟器。
我问这个问题是因为这个问题在脑海中浮现了很长时间?每当我了解一个新概念时,本能 react 就是,好吧,它在内存中看起来如何。
最佳答案
如果将 SOS.dll(或 PSSCOR2.dll)扩展加载到 WinDbg 甚至 Visual Studio 中,您可以看到所有这些以及更多信息。
SOS 是 .NET 框架的一部分,它基本上将 WinDbg 等 native 调试器转变为“托管代码感知”调试器。
SOS 具有可让您检查托管堆、对象及其引用等的命令。
有关详细信息,请参阅 Tess' excellent blog .
有关如何使用 SOS 的另一个示例,请参阅 this question .
关于c# - 是否有 CPU 模拟器或一种方法来查看事物是如何在内存中创建和销毁的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555134/