关于 .net 和 C#,我可以在堆栈中创建我的类的对象吗? 例如:
class abc { int i=1; }
abc a1=new abc();
现在,这里的对象是在堆中创建的。那么,如果对象的大小不大,有没有办法在ram的栈内存中创建对象呢?
最佳答案
.NET 引用类型始终存在于 GC 堆中。别处不可能有它们。即使是 C++/CLI 也支持类似的东西
System::Random rnd;
rnd.Next();
看起来像堆栈变量,实际上在 GC 堆上创建了 Random
类(如果它实现了 IDisposable
.)
也就是说,正如 Eric Lippert 所说,the stack is an implementation detail并且您应该主要关心您创建的类型的引用或值语义。
关于c# - 堆栈中的对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194582/