Для параметров универсального типа ключевое слово out указывает, что параметр типа является ковариантным. Ключевое слово out может применяться в универсальных интерфейсах и делегатах.
Ковариация позволяет использовать производные типы со степенью наследования больше, нежели у типа, заданного универсальным параметром. Благодаря этому можно осуществлять неявное преобразование классов, реализующих ковариантные интерфейсы, и неявное преобразование типов делегатов. Ковариация и контравариантность поддерживаются для ссылочных типов, но не для типов значений.