不允许创建 System.Void 数组类型
不再允许为 System.Void 数组创建 System.Type 实例。
旧行为
以前,typeof(void).MakeArrayType()
返回一个 System.Type 实例。
新行为
从 .NET 9 开始,typeof(void).MakeArrayType()
会引发异常。
引入的版本
.NET 9 预览版 1
中断性变更的类型
此更改为行为更改。
更改原因
System.Void 数组是无效类型。 在某些情况下(例如,C# 中的 void[]
无法编译),此类型会被拒绝,因此无法创建此类型的数组。
.NET 运行时允许在某些情况下创建这种无效类型。 但是,尝试在其他 .NET 运行时 API 中使用此无效类型通常会导致意外行为。 为了使行为稳健且一致,最好在所有情况下都禁止创建这些无效的数组类型。
建议的操作
删除尝试为 System.Void 数组创建类型的代码。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈