CSharp · Console
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public void Main()
{
var log = new StringBuilder();
foreach (var number in GetEnumerable(log))
{
log.AppendLine(number.ToString());
}
Console.WriteLine(log);
}
public static IEnumerable<int> GetEnumerable(StringBuilder log)
{
using (var context = new Context(log))
{
return Enumerable.Range(1, 5);
}
}
}
public class Context : IDisposable
{
private readonly StringBuilder log;
public Context(StringBuilder log)
{
this.log = log;
this.log.AppendLine("Context created");
}
public void Dispose()
{
this.log.AppendLine("Context disposed");
}
}