.NET9引用数组协变怪异Bug
原文中文,约6400字,阅读约需16分钟。发表于: 。点击上方蓝字 江湖评谈设为关注/星标前言引用类型的数组是协变的,这是完全没有问题的。协变的实质是允许你将更具体的类型(子类)代替一个较为抽象的类型(父类)。但正因为协变的存在,引用数组某些情况下会存在问题。本篇看下。本文代码是最新的.NET9 RC2作为蓝本参考。问题我们看一个正常引用数组的操作:using System; class Animal { public string Na...
引用类型数组的协变允许用子类替代父类,但可能导致运行时异常。例如,Giraffe数组可以存放Giraffe实例,但若存放Turtle实例则会引发异常。CLR在赋值时进行类型检查,增加了性能开销。此问题在.NET9中仍未得到合理解决。