找不到使用 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) };
我正在尝试使用 ReadOnlySpan<T>
进行解码。 (这里是 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) };