You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Standard 2.0未被微软列为支持Span,为何可正常使用?

为什么.NET Standard 2.0的Xamarin应用能使用System.Span及Reverse()方法

以下是几个关键原因:

  • Mono运行时的向前兼容实现
    Xamarin基于Mono运行时,Mono团队为提升性能,在.NET Standard 2.0环境的运行时中提前实现了System.Span<T>及其相关方法(包括Reverse()),并不完全遵循.NET Standard官方的版本支持要求。

  • System.Memory NuGet包的补充
    如果你的项目引用了System.Memory NuGet包,这个包专门为.NET Standard 2.0等旧平台提供了Span<T>的兼容实现。后续版本的该包还补充了Reverse()这类扩展方法,解决了早期版本方法缺失的问题。

  • C#版本与.NET Standard版本的解耦
    C# 7.3已经原生支持Span<T>的语法特性(比如stackalloc),只要项目中能找到Span<T>的类型定义(不管是来自运行时还是NuGet包),就能正常编译和使用,不需要依赖.NET Standard 2.1的支持。

  • 官方文档的范围限制
    微软官方文档标注的“.NET Standard 2.1+支持”,仅针对官方的.NET Core/.NET Framework标准库实现,而Xamarin使用的Mono运行时属于第三方实现,不受此限制。

内容的提问来源于stack exchange,提问作者Adam Kaczmarski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:10:35