Зачем надо использовать ключевое слово yield - C#
Формулировка задачи:
Объясните мне, зачем надо использовать ключевое слово yield? Уже мозг кипит. К примеру здесь:
}
В MSDN прочитал, как то совсем не внятно написано.
public static IEnumerable<int> fib()
{
yield return 0;
int i = 0, j = 1;
while (true)
{
yield return j;
int temp = i;
i = j; j = temp + j;
}Решение задачи: «Зачем надо использовать ключевое слово yield»
textual
Листинг программы
public static List<MyLine> SearchLines() {
var rls = new List<MyLine>();
try {
var lines = Library.LoadElementsList("Line");
foreach (var line in lines) {
if (!line.IsHorisontal && !line.IsVertical) continue;
rls.Add(line);
}
var polylines = Library.LoadElementsList("Poly");
foreach (var poly in polylines) {
if (poly.Points.Count < 2) continue;
for (var i = 1; i <= poly.Points.Count - 1; i++) {
var line_poly = new line(poly.Points[i - 1], poly.Points[i])
if (!line_poly .IsHorisontal && !line_poly .IsVertical) continue;
rls.Add(line_poly);
}
}
var boxes = Library.LoadElementsList("Box");
foreach (var box in boxes) {
rls.Add(new MyLine(box.Point1.X, box.Point1.Y, box.Point2.X, box.Point1.Y));
rls.Add(new MyLine(box.Point2.X, box.Point1.Y, box.Point2.X, box.Point2.Y));
rls.Add(new MyLine(box.Point1.X, box.Point2.Y, box.Point2.X, box.Point2.Y));
rls.Add(new MyLine(box.Point1.X, box.Point1.Y, box.Point1.X, box.Point2.Y));
}
} catch {
}
return rls;
}