.NET中集合的内存分配

这可能是一个骗局。 我没有找到足够的信息。

我正在讨论.Net中集合的内存分配。 集合中分配的元素的内存在哪里?

List myList = new List(); 

变量myList在堆栈上分配,它引用在堆上创建的List对象。

问题是当int元素添加到myList时,它们将在何处创建?

谁能指出正确的方向?

元素也将驻留在堆中(在数组中,这就是List在内部的工作方式)。

原则上,只有局部变量和参数在堆栈上分配,其他所有内容都在堆上(除非你使用稀有的东西,比如stackalloc ,但你不需要担心)

元素将在堆上创建。 生活在堆栈上的唯一东西是列表的指针(引用)( List<>是引用类型)