找不到使用 ReadOnlySpan<T> 的库 System.Runtime.dll

Cannot find library System.Runtime.dll for using ReadOnlySpan<T>

我正在尝试使用 ReadOnlySpan<T> 进行解码。 (这里是 )。 关于Microsoft documentation,我可能会在System.Runtime.dll

中找到

我在文件夹 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\Facades 中查看并发现了它,但我仍然无法使用 ReadOnlySpan。

项目在.NET Framework 4.8

有什么我遗漏的吗?谢谢

Span<T>(和 ReadOnlySpan<T>)是在 .NET Core 2.1 中引入的,请参阅 this table. You can use it in .NET Framework by referencing the System.Memory NuGet package。但请注意,这不会为您带来与使用 .NET Core 2.1+ 完全相同的速度改进。

但是,您尝试使用的代码仅使用了一次跨度:

ReadOnlySpan<byte> bytes = stackalloc byte[] { (byte)(ch3 + 128) };

这是一种在堆栈上分配数组的廉价方法,避免了对象分配。在这里分配一个数组可能更容易:所有其他对象分配都在该代码中进行,您不会注意到额外的小成本:

byte[] bytes = new byte[] { (byte)(ch3 + 128) };