首页 > 解决方案 > 泛型类型参数 C# 中的方差关键字(输入、输出)名称推理

问题描述

我了解泛型参数变化的目的以及它的功能。但我想知道为什么当前选择协变参数的关键字' out '而不是相反的' in '。鉴于协方差允许接口方法具有比泛型类型参数定义的更多的派生返回类型,为什么我们用' out '关键字标记参数?这是因为参数类型必须是该类型的“外部”边界吗?我最初的看法是它与允许替换的方向有关,而不是与边界有关。

为了使它更直观,这里有一个示例接口声明:

interface ICovariant<out T>
{
    T GetSomething();    
}

问题:为什么选择协方差关键字“ out ”而不是“ in ”关键字?

标签: c#.net

解决方案


推荐阅读