Я знаю, что этот код не работает (и у него нет проблем с написанием его таким образом, который будет работать). Мне было интересно, как компилятор может строить без каких-либо ошибок. И вы получаете ошибки времени выполнения, если вы его запускаете? (если данные не были нулевыми)
using System;
using System.Collections.Generic;
public class Class1
{
public void Main()
{
IEnumerable<IEnumerable<Foo>> data = null;
foreach(Foo foo in data){
foo.Bar();
}
}
}
public class Foo {
public void Bar() { }
}