Ковариантность out в C#
Модификатор out ставят у параметра типа, который метод только
возвращает и нигде не принимает. Такую реализацию для более узкого
типа можно записать в переменную более широкого типа.
Список строк нельзя присвоить переменной списка объектов: в список
объектов разрешено класть что угодно, а в список строк - нет.
Последовательность только для чтения это разрешает. Строка является
объектом, наружу отдаётся она. Для int так сделать нельзя: out работает, когда
T - класс:
IEnumerable<object> items = new List<string> { "a", "b" };
foreach (object item in items)
{
Console.WriteLine(item); // выведет "a"
break;
}
Дан код:
List<string> words = new List<string> { "north", "south", "east" };
Сохраните этот список в переменную IEnumerable<object> и выведите число элементов.