Я работаю с устаревшим объектом коллекции, который реализует только неуниверсальные IEnumerable
и ICollection
. Что именно происходит с этим объектом, когда я пытаюсь использовать этот объект с foreach
, задающим более конкретный тип в левой части выражения foreach?
// LegacyFooCollection implements non-generic IEnumerable
LegacyFooCollection collection = GetFooCollection();
foreach (Foo f in collection)
{
// etc.
}
Я знаю (потому что пробовал), что это безопасно, если все в коллекции
действительно имеет тип Foo
, но что произойдет, если это не удастся?