Что такое урожай и что преимущество состоит в том, чтобы использовать урожай у asp.NET?

Можно ли помочь мне в понимании yield ключевое слово в asp .NET(C#).

19
задан RBT 8 April 2018 в 05:10
поделиться

5 ответов

Yield return автоматически создает для вас счетчик.

http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx

Таким образом, вы можете сделать что-то вроде

//pseudo code:

while(get_next_record_from_database)
{
  yield return your_next_record;
}

Это позволяет вам быстро создать коллекцию объектов (перечислитель), которую вы можете просматривать и извлекать записи. Оператор yield return обрабатывает весь код, необходимый для создания перечислителя для вас.

Большая часть оператора yield return заключается в том, что вам не нужно загружать все элементы в коллекции перед возвратом коллекции в вызывающий метод. Это позволяет ленивую загрузку коллекции, поэтому вы не платите штраф за доступ сразу.

Когда использовать Доходность .

15
ответ дан 30 November 2019 в 04:40
поделиться

Yield - это гораздо больше, чем просто синтаксический сахар или простые способы создания IEnumerables.

Для получения дополнительной информации я бы заглянул в блог Джастина Этеража, в котором есть отличная статья, объясняющая более сложные способы использования yield .

5
ответ дан 30 November 2019 в 04:40
поделиться

yield используется как синтаксический сахар для возврата объекта IEnumerable или IEnumerator из метод без необходимости реализации вашего собственного класса, реализующего эти интерфейсы.

1
ответ дан 30 November 2019 в 04:40
поделиться

yield позволяет выдавать IEnumerable там, где обычно возвращается более конкретный тип (например, IList).

Это довольно хороший пример того, как он может упростить ваш код и прояснить ваши намерения. Что касается того, где вы будете его использовать, в любом месте ваших страниц, которые вам нужно переработать над коллекцией, вы потенциально можете использовать метод, который возвращает IEnumerable вместо List/Dictionary/etc.

0
ответ дан 30 November 2019 в 04:40
поделиться

Я написал простой пример, показывающий, как блок yield вызывается во время цикла посещения коллекции. Посмотрите здесь .

1
ответ дан 30 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

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