Что такое доходность?, и какое преимущество дает доход в asp.net?

Вы можете помочь мне понять ключевое слово yield в asp.net(C#).

Ответы

Ответ 1

Возврат дохода автоматически создает для вас счетчик.

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

Итак, вы можете сделать что-то вроде

//pseudo code:

while(get_next_record_from_database)
{
  yield return your_next_record;
}

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

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

Когда использовать Возврат урожая.

Ответ 3

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

Ответ 4

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

Ответ 5

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

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