Мое первое знакомство с терминами: безопасный для вывода, безопасный для ввода, небезопасный для вывода и небезопасный для ввода в разделе «Вариационная безопасность» спецификации языка C#. Я знаком с концепцией дисперсии (как ковариантной, так и контравариантной), которая в основном относится к использованию одного типа вместо другого.
Так что же на самом деле подразумевается под безопасностью вывода или ввода? И говорим ли мы здесь о параметрах типа в универсальных типах или о любом типе (ссылка или значение)?
Подробнее здесь: https://stackoverflow.com/questions/161 ... input-safe