Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Для чего используют out в обобщенных интерфейсах

#c_sharp


Столкнулся с объявлением обобщенного интерфейса с использованием out 

public interface IContainer
{
   ...
} 


Никак не могу понять для чего используют out, по механизму это похоже на использование
ref и out в методах или это из другой области?
    


Ответы

Ответ 1



in и out в интерфейсах — это ковариантность и контравариантность. Благодаря out, IEnumerable является IEnumerable, а благодаря in, а IComparer является IComparer. Есть хорошая статья на MSDN с примерами из фреймворка: Covariance and Contravariance in Generics.

Комментариев нет:

Отправить комментарий