几个月前有人问我这个问题,我无法详细解释.C#中的引用类型和值类型有什么区别?
我知道,价值类型int,bool,float,等和引用类型delegate,interface等等.或者,这是不对的,太?
你能以专业的方式向我解释一下吗?
关于如何管理强类型泛型的内存,我有疑问
List<int> ints1 = new List<int>();
ints1.Add(1); ints1.Add(2); ints1.Add(3);
int[] ints2 = new int[10]();
ints2.Add(6); ints2.Add(7); ints2.Add(8);
Run Code Online (Sandbox Code Playgroud)
问题1:我假设因为ints1初始化了一个新的关键字(new List<int>())它成为一个引用类型.值1,2,3在哪里存储在内存中(它们存储在堆栈中还是堆栈中)?
问题2:我知道之间的事情List<int>和int[],List<int>可以扩展它的大小为任意大小在运行时,它被限制在int[]编译时.因此,如果值1,2,3存储在堆栈中,如果添加一个新项目List<int>说4,它将不会连续到前3个右侧,那么ints1将如何知道4的内存位置?