Зачем надо использовать ключевое слово yield - C#

Узнай цену своей работы

Формулировка задачи:

Объясните мне, зачем надо использовать ключевое слово yield? Уже мозг кипит. К примеру здесь:
Листинг программы
  1. public static IEnumerable<int> fib()
  2. {
  3. yield return 0;
  4. int i = 0, j = 1;
  5. while (true)
  6. {
  7. yield return j;
  8. int temp = i;
  9. i = j; j = temp + j;
  10. }
} В MSDN прочитал, как то совсем не внятно написано.

Решение задачи: «Зачем надо использовать ключевое слово yield»

textual
Листинг программы
  1. public static List<MyLine> SearchLines() {
  2. var rls = new List<MyLine>();
  3. try {
  4.   var lines = Library.LoadElementsList("Line");
  5.   foreach (var line in lines) {
  6.     if (!line.IsHorisontal && !line.IsVertical) continue;
  7.     rls.Add(line);
  8.   }
  9.   var polylines = Library.LoadElementsList("Poly");
  10.   foreach (var poly in polylines) {
  11.     if (poly.Points.Count < 2) continue;
  12.     for (var i = 1; i <= poly.Points.Count - 1; i++) {
  13.       var line_poly = new line(poly.Points[i - 1], poly.Points[i])
  14.       if (!line_poly .IsHorisontal && !line_poly .IsVertical) continue;
  15.       rls.Add(line_poly);
  16.     }
  17.   }
  18.   var boxes = Library.LoadElementsList("Box");
  19.   foreach (var box in boxes) {
  20.     rls.Add(new MyLine(box.Point1.X, box.Point1.Y, box.Point2.X, box.Point1.Y));
  21.     rls.Add(new MyLine(box.Point2.X, box.Point1.Y, box.Point2.X, box.Point2.Y));
  22.     rls.Add(new MyLine(box.Point1.X, box.Point2.Y, box.Point2.X, box.Point2.Y));
  23.     rls.Add(new MyLine(box.Point1.X, box.Point1.Y, box.Point1.X, box.Point2.Y));
  24.   }
  25. } catch {
  26. }
  27. return rls;
  28. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы