列出从孩子到父母的分配

2023-12-28

我正在尝试这样做:

List<Parent> test = new List<Child>();

我的类的完整代码是这样的:

class Program
{
    public static void Main(string[] args)
    {
        List<Parent> test = new List<Child>();

        test.Add(new Child());

        test.Add(new AnotherChild());
    }
}

class Parent { }

class Child : Parent { }

class AnotherChild : Parent { }

有人可以解释一下为什么这会给我这个错误吗:

错误2无法将类型“System.Collections.Generic.List”转换为“System.Collections.Generic.List”d:\personal\documents\visual studio 2010\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs 20 24 ConsoleApplication3

为什么这会起作用?

Parent[] test = new Child[10];
List<Parent> result = test.ToList();

谢谢 :)

-- 正确的:

现在我知道为什么了:List 被编译为List`1并列出至List`2。而且他们没有任何关系。


Update:因为这两种类型,List<Parent> and List<Child> is not 协变体 http://msdn.microsoft.com/en-us/library/dd799517(VS.100).aspx.

即使您传入的通用参数,Child,继承Parent,该关系不会被带入封闭列表类型中。因此,生成的两个 List 类型不可互换。

.Net 4.0 引入了协方差/逆变。不过,您的代码仍然无法在 .Net 4.0 上运行,因为List类或IList接口将更改为协变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列出从孩子到父母的分配 的相关文章

随机推荐

  • Power BI:计算无法正常工作

    我有一个包含资源名称 资源所有者 项目名称 项目经理 工作量的表 对于每个资源所有者 我想计算借出的工作量 所有者的资源在除所有者项目之外的项目中花费的工作量 和借用的工作量 所有者的资源在除项目所有者之外的其他项目中花费的工作量 For
  • 从 Groovy 中的字符串中删除空格

    我有一个像这样的字符串 String str My name is Monda 我怎样才能实现像这样的字符串 str MynameisMonda 您可以使用replaceAll http docs groovy lang org lates
  • UITableView,如何捕捉动画结束?

    我有一个包含很多行的 UITableView 它就像一个手风琴 http docs jquery com UI Accordion http docs jquery com UI Accordion主单元有子单元 子单元也有子单元 所以这是
  • 使正则表达式准确匹配点文件

    所以我已经达到了我的正则表达式能力的极限 我这里有一个 python 正则表达式 用于将文件路径或文件 uri 与各个部分的命名捕获组相匹配 它似乎是工作文件 除了点文件 MATCH PATH re compile r P
  • 为什么 getNetworkOperator 对于 CDMA 不可靠?

    谁能说出为什么文档getNetworkOperator的函数TelephonyManager指出这可能会返回 CDMA 不可靠的结果 获取网络操作员文档 http developer android com reference androi
  • 如何检测视图元素何时在 Angular 中渲染?

    我的设置是一个带有可单击行的 Angular Material 数据表 单击一行时 其内容会内联显示在textarea进行编辑 我唯一的问题是 我尝试将输入焦点移动到显示的textarea 我尝试使用 ViewChild 但稍后会在单击处理
  • 删除分片分配过滤器

    我设置了一个分片分配过滤器 例如 PUT cluster settings transient cluster routing allocation exclude name node 1 如何删除或禁用此类设置 我尝试使用包含 但随后我设
  • 单元测试 Spring MissingServletRequestParameterException JSON 响应

    我在 Spring boot 休息控制器中有 POST 方法 如下所示 RequestMapping value post action bookmark method RequestMethod POST public ResponseB
  • 返回自定义验证器错误 Grails

    我只收到默认验证器消息 我究竟做错了什么 class Questao static hasMany alternativas Alternativa static constraints alternativas validator val
  • Play 框架 2.x 应用程序中作业/任务的调度/延迟

    在典型的 Web 应用程序中 有些事情我更愿意作为延迟的作业 任务来运行 它们往往具有以下部分或全部属性 需要很长时间 从几秒到几分钟到几个小时 大量占用部分资源 CPU 网络 磁盘 外部API限制等 结果不是立即需要的 没有它也能完成HT
  • 如何从本机 c 调用 C#(mono、.net)方法、委托

    是否可以从本机 C 代码调用以托管代码 可能在类或库中 编写的 C 方法 以及如何调用 thx 编辑 对于 c 我主要指的是 mono 甚至 portable net 操作系统是 Linux 您的 C 代码可以定义函数来注册回调 C 代码可
  • 使用wget爬取网站并限制爬取链接总数

    我想通过使用 wget 工具来了解有关爬虫的更多信息 我有兴趣抓取我部门的网站 并找到该网站上的前 100 个链接 到目前为止 下面的命令是我所拥有的 如何限制爬虫在100个链接后停止 wget r o output txt l 0 t 1
  • 是否可以使用 bash 脚本在终端中打印旋转光标?

    我见过使用的解决方案c python ruby但bash 我发现的最接近的设计是使用这个 ruby 控制台解决方案 10 times print sleep 0 1 print b print sleep 0 1 print b print
  • 从 Kendo Grid 导出到 Excel 后,日期时间列存在 28 秒差异

    我们的 Web 应用程序中有一些网格 并且我们使用 Kendo 来实现 ASP Net MVC 一些客户报告将网格数据导出到 Excel 时日期不同 例如 第一行来自控制器 如下所示 SaleDate 2018 05 30T00 00 00
  • 在引导模式中显示ajax调用结果

    我需要在引导模式中显示多个数据 为此 我所做的是 js file seeProfile on show function see user on click function e e preventDefault var id this d
  • Knex:获取连接超时。泳池可能已经满了。您是否错过了 .transacting(trx) 调用?

    我使用以下代码进行 knex 连接 但经常发生错误 Knex 获取连接超时 泳池可能已经满了 您是否错过了 transacting trx 调用 有人可以建议这个问题的解决方案吗 var knexConn reqKnex client pC
  • SceneKit 从单独的 scn 文件中加载带有动画的节点

    我有一个动态创建 SCNView 的视图 它的场景是空的 但是当我按下按钮时 我想从单独的 scn 文件添加一个节点 该文件包含动画 我希望它在主场景中制作动画 问题是 将对象添加到场景后 它没有动画 当我使用这个文件作为 SCNView
  • Facebook 有 OAuth 的刷新令牌吗?

    Facebook 有 OAuth 的刷新令牌吗 我想知道是否有刷新令牌 它会过期多久 60天 如果 Facebook 没有刷新令牌 那么我是否可以将长期访问令牌理解为刷新令牌 将短期访问令牌理解为访问令牌 Thanks Facebook 不
  • Rspec Rails 打印大量警告

    我正在使用 rspec rails 3 0 1 测试 Rails 4 1 0 应用程序 rspec 命令正在打印大量有关我在应用程序中使用的 gem 的警告 我在下面包含了部分输出 我想知道是否可以抑制这种情况 home indika Do
  • 列出从孩子到父母的分配

    我正在尝试这样做 List