Вчера исправлял баг, проявил он себя весьма интересно. Но продемонстрировать его можно на достаточно простом примере:
static void Main(string[] args)
{
Print(new[] { 1, 2, 3 });
Console.ReadKey();
}
static void
Print<T>(T t)
{
Console.WriteLine(t);
}
static void
Print<T>(IEnumerable<T> t)
{
foreach (var item in t)
{
Console.WriteLine(item);
}
}