Метод, который возвращается, набор называют в каждом повторении в foreach операторе в C#?

Если я правильно понимаю, вам нужно редактировать переводы только в одном экземпляре вашего заявления.

Возможно, вы сможете использовать комплект переводов и сохранить ключи в программном обеспечении Saas. Взгляните на https://github.com/php-translation/symfony-bundle , это может помочь вам

7
задан Gustavo Rubio 28 January 2009 в 18:55
поделиться

5 ответов

Не волнуйтесь об этом; это только выполнит GetDataTable () однажды внутренне, чтобы получить объект перечислителя от DataRowCollection и затем выбрать новый объект от него каждый пробежавший цикл.

11
ответ дан 6 December 2019 в 11:53
поделиться

Цикл foreach является только syntaxic сахаром для

var enumerator = MyMethod.GetDataTable().Rows.GetEnumerator();
while (enumerator.MoveNext())
{
    DataRow row = enumerator.Current;
    // Initial foreach content
}
3
ответ дан 6 December 2019 в 11:53
поделиться

Gustavo - перефразировать старого моего преподавателя CS: отладчик является Вашим другом! Если у Вас есть несколько минут и некоторое терпение, Вы могли бы перенести извлечение таблицы в другом классе и поместить точку останова туда. Вы нашли бы, что, действительно, объект создается так, чтобы вызов не был повторен.

2
ответ дан 6 December 2019 в 11:53
поделиться

Это только называют однажды и затем сохранило.

1
ответ дан 6 December 2019 в 11:53
поделиться

То, что Вы делаете, является по существу тем же самым. В первой ситуации Вы создаете ссылку на класс DataRowCollection и затем выполняете foreach, и в первом, Вы не создаете ссылку. В обеих ситуациях Вы называете.GetEnumerator () на экземпляре DataRowCollection, который находится на "куче".

Вы будете называть его на экземпляре после того, как экземпляр будет получен из метода GetDataTable ().

GetDataTable () называют только однажды.

0
ответ дан 6 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: