为了账号安全,请及时绑定邮箱和手机立即绑定

对于每个确认

对于每个确认

C#
波斯汪 2021-07-06 13:53:06
我相信,我知道答案。但是,试图得到确认。如果,您执行以下操作: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[],然后它会循环。也有...
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

是的,它只会被执行一次。你是对的。如何检查?这是您可以编写以查看它的片段。


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;

}

输出是:


Hello

0

2

5

8

Hello 只打印一次!

更好的方法是使用调试器并逐步遵循流程。更先进的方法是阅读MSIL :)


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信