4 c#
string Name = "";
for(int i; i < 10; i++)
{
Name = NameList[i] + "what?";
Console.WriteLine(Name);
}
//Or this one:
for(int i; i < 10; i++)
{
string Name = NameList[i] + "what?";
Console.WriteLine(Name);
}
Run Code Online (Sandbox Code Playgroud)
哪一个会少用内存?有人在这个问题的评论中问了这个,我不确定自己.谢谢!
除了第一个片段中的初始分配外,两个片段都编译为相同的IL.
所需的内存是两个局部变量的内存,内存for NameList及其元素,以及10个字符串实例的内存,这些内存是通过将列表元素与字符串常量连接而产生的.字符串实例最终将由GC以通常的,不可预测的方式收集.局部变量的范围对此没有影响.