猿问

对于每个确认

我相信,我知道答案。但是,试图得到确认。如果,您执行以下操作:


foreach (string str in Directory.GetFileSystemEntries(path)) { Console.WriteLine(str); }

代替:


string[] directoryEntries = Directory.GetFileSystemEntries(path);

foreach (string str in directoryEntries) { Console.WriteLine(str); }

Directory.GetFileSystemEntries(path),在幕后,只会被执行一次,对吗?在这种情况下,我认为它会生成必要的 string[],然后它会循环。也有...


波斯汪
浏览 130回答 1
1回答

胡说叔叔

是的,它只会被执行一次。你是对的。如何检查?这是您可以编写以查看它的片段。public static void Main(){    var ints = new int[]{0,2,5,8};    foreach (var i in Print(ints))    {        Console.WriteLine(i);    }}public static int[] Print(int[] numbers){    Console.WriteLine("Hello");    return numbers;}输出是:Hello0258Hello 只打印一次!更好的方法是使用调试器并逐步遵循流程。更先进的方法是阅读MSIL :)
随时随地看视频慕课网APP
我要回答