MwB*_*ker 4 c# resources object instance
假设有以下情况:
必须从大量的文件夹结构中检索日志文件,并将它们添加到List中.
哪种方案从机器中获取的资源更少?
LogFile file;
foreach (string filepath in folderfiles)
{
file = new LogFile { path = filepath,
machine = machineName,
user = userName };
files.Add(file);
}
Run Code Online (Sandbox Code Playgroud)
要么
foreach (string filepath in folderfiles)
{
LogFile logFile = new Logfile { path = filepath,
machine = machineName,
user = userName };
files.Add(file);
}
Run Code Online (Sandbox Code Playgroud)
它会有什么不同吗?
实际上,JIT(即时)编译器可能会优化两种方法之间的差异.从概念上讲,第一个选项是"更好",因为编译器(假设没有优化)不必担心循环中变量的范围.
此外,由new LogFile()两个方法创建的新实例将超出范围,并且有资格在同一时间进行垃圾收集.
简而言之,完全编译时没有重大差异(如果有的话).