-1
结构是C#中的值类型,字符串是引用类型。我知道它们在内存分配和映射上的差异,但我不确定C#引用类型是如何存储在值类型中的。假设我在下面的结构中有一个字符串。 如果在Structure中创建引用类型在堆上,那么当结构作为参数传递给函数时,编译器如何管理堆上的数据。引用类型.NET中的值类型
字符串是否会在堆栈或堆上创建?
如果我通过结构点对象的功能如何.NET管理的对象PointC内部结构。如果PointC是在堆上创建的,那么传递stuct到函数将具有与class相同的记忆?
public class PointC
{
...
...
}
public struct Point
{
PointC obj;
}
我会*猜*字符串仍然在堆上,*参考*在堆栈上。尽管这样的区别在C#中通常没有用处。 – BradleyDotNET
'我知道他们的内存分配和映射的区别'你的问题表明你实际上不知道... – Servy
@BradleyDotNET传播价值类型进入堆栈的想法只会导致这个问题。值类型不会放在堆栈上,它们会到达所涉及变量的特定存储位置的任何位置,这些位置可能几乎是任何地方,包括堆栈,堆或两者。 – Servy