.NET中集合的内存分配
这可能是一个骗局。 我没有找到足够的信息。
我正在讨论.Net中集合的内存分配。 集合中分配的元素的内存在哪里?
List myList = new List();
变量myList在堆栈上分配,它引用在堆上创建的List对象。
问题是当int元素添加到myList时,它们将在何处创建?
谁能指出正确的方向?
元素也将驻留在堆中(在数组中,这就是List在内部的工作方式)。
原则上,只有局部变量和参数在堆栈上分配,其他所有内容都在堆上(除非你使用稀有的东西,比如stackalloc
,但你不需要担心)
元素将在堆上创建。 生活在堆栈上的唯一东西是列表的指针(引用)( List<>
是引用类型)