Для каждого подтверждения - PullRequest
0 голосов
/ 28 мая 2018

Я верю, я знаю ответ.Но, пытаясь получить подтверждение.Если вы сделаете что-то вроде:

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 (путь) за кулисами будет выполняться только один раз, правильно?Я предполагаю, что в данном случае это делает необходимую строку [], а затем выполняет ее зацикливание.Слишком ...

1 Ответ

0 голосов
/ 28 мая 2018

Да, он будет выполнен только один раз.Ты прав.Как это проверить?Вот фрагмент, который вы могли бы написать, чтобы увидеть его.

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 печатается только один раз!

Лучшим способом было бы использовать debbuger и выполнять пошаговые инструкции.Более продвинутым способом было бы прочитать MSIL :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...