c# - 泛型类型参数 C# 中的方差关键字(输入、输出)名称推理
问题描述
我了解泛型参数变化的目的以及它的功能。但我想知道为什么当前选择协变参数的关键字' out '而不是相反的' in '。鉴于协方差允许接口方法具有比泛型类型参数定义的更多的派生返回类型,为什么我们用' out '关键字标记参数?这是因为参数类型必须是该类型的“外部”边界吗?我最初的看法是它与允许替换的方向有关,而不是与边界有关。
为了使它更直观,这里有一个示例接口声明:
interface ICovariant<out T>
{
T GetSomething();
}
问题:为什么选择协方差关键字“ out ”而不是“ in ”关键字?
解决方案
推荐阅读
- c# - VSTO 功能区按钮打开 Windows 窗体但无法在不关闭窗体 C# 的情况下使用另一个 Excel 实例
- ssh - 读取数据包时的 EOF
- ios - 为类似布局的 UITableViewCell 重用布局代码
- puppeteer - Puppeteer:如何从 H1class 中获取文本
- python - 无法构建 Apks Kivy
- swift - 如何在 swift 中正确复制 CAShapeLayer?
- php - 从 URL 获取域名后的文本而不发送到未找到的页面
- asp.net - MVC 提交按钮没有响应
- docker - Docker Compose / 无效,因为
- android - 无法实例化活动 ComponentInfo(Fragment) - Android