问题标签 [system.memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1576 浏览

c# - 在哪里可以找到 System.Memory 文档?

我在哪里可以找到 Span<T> 和 Memory<T> 之类的实际文档?

0 投票
1 回答
441 浏览

xamarin.forms - Xamarin.Forms + Xamarin.ios Entityframework Core 2.1.1 构建错误

我正在使用 Microsoft.EntityframeworkCore.Sqlite 版本 2.1.1 和 Xamarin.forms .NetStandard 2.0 版本开发 Xamarin.ios 应用程序。我无法在 iPhone 上构建应用程序,出现以下错误:

MTOUCH:错误 MT3001:无法 AOT 程序集 'project_name/iOS/obj/iPhone/Debug/device-builds/iphone10.2-11.0.2/mtouch-cache/Build/Microsoft.EntityFrameworkCore.dll' (MT3001) (project_name .iOS)

谁能帮我解决这个错误,我尝试将实体框架版本降级到 2.0.0,并将 Microsoft.extension.* 版本降级到 2.0.0。

链接器行为:不链接/仅链接 SDK SDK 版本:11.0

0 投票
1 回答
139 浏览

c# - 行动> 抛出编译错误,但委托 void TestMeDelegate(Span数据)没有

检查以下代码。

使用 testMeDelegate 的行有效,但使用 testMeAction 的行抛出

类型“ Span<byte>”不能用作类型参数

我的 target.net 4.7.2 和 System.Memory nuget 版本 4.5.1

Langversion 设置为 C# latest 次要版本(latest)应该是 7.3

问题:

这只是一个编译器错误吗?

在这种情况下,Action 和 delegate 有什么区别?

0 投票
5 回答
2970 浏览

c# - 跨度和二维数组

是否可以将新的System.Memory Span 结构与二维数据数组一起使用?

虽然 testArray 和 testString 有一个 AsSpan 扩展,但 testMulti 不存在这样的扩展。

Span 的设计是否仅限于处理一维数据数组?
我还没有找到使用 Span 处理 testMulti 数组的明显方法。

0 投票
1 回答
2174 浏览

c# - 结构为 ReadOnlyMemory表示

我有以下结构:

我想通过网络发送它,而不需要分配(使用SendAsync(ReadOnlyMemory<byte>))调用。

如何Memory<byte>从给定的结构中获取?

我最终有Span<byte>,然后卡住了。

有什么方法可以将结构直接放入流中而不进行任何分配?

我在netcoreapp2.1

0 投票
1 回答
1095 浏览

c# - 使用跨度作为子字符串的替代品

我已经阅读了几篇关于如何使用 Span 替换某些字符串操作的文章。因此,我已经更新了我的代码库中的一些代码以使用这个新功能,但是,为了能够就地使用它,我必须调用.ToString().

是否.ToString()有效地否定了我从使用中获得的好处,Span<T>而不是Substring因为这必须分配内存?在这种情况下,如果 Span 以这种方式获得好处,还是不可能?

0 投票
1 回答
65 浏览

c# - 跨度 - 访问原始值

我希望获得 Span 代表的原始值。以下面的代码为例,我如何在不创建副本的情况下DoWork访问原始字节数组?

我发现 2 个带有辅助方法的静态类(如上所示)可能会有所帮助,但我不确定在不使事情变得比复制更慢的情况下最好的方法是什么。

0 投票
0 回答
387 浏览

c# - 有没有办法使用 ReadOnlySpannetstandard2.0 类库中 StringBuilder 和 TryParse 方法的重载?

我有一个 NetStandard2.0 类库。我已经导入了System.Memorynuget 包,这意味着我可以Span<T>在其中使用。这很好,但是 nuget 包似乎不包括其他原始类型的ReadOnlySpan<char>重载StringBuilderTryParse()方法。

如果我可以升级到 netstandard21,我会这样做,这个问题就会消失,但由于我无法控制的原因,我不能这样做。

此代码适用于netcoreapp2.2程序,但不适用于 netstandard20 类库,即使System.Memory作为依赖项:

是否有另一个我可以参考的 nuget 包为 netstandard20 库带来跨度StringBuilder支持TryParse

0 投票
1 回答
772 浏览

c# - ReadOnlySequence – 切片到给定的 SequencePosition + 1

我尝试从ReadOnlySequence. 数据被格式化为帧。每个帧都由一个 NULL 字节(八位字节 0)终止。

我的代码使用ReadOnlySequence.PositionOf. 当它找到一个 NULL 字节时,它将处理直到 NULL 字节位置的所有字节。处理后,我想通过切片输入来处理下一帧并重复前面的步骤。由于帧在 NULL 字节之前结束,因此如果我不再对输入数据进行切片(start = 1),NULL 字节将成为下一个字节序列的一部分。

ReadOnlySequence是否有一种方法可以用SequencePosition+ 1 项/字节作为起始值来对 a 进行切片?

我尝试使用SequencePosition.GetInteger+ 1 作为起始值,但这不起作用,因为GetInteger有时返回的值大于ReadOnlySequence. 切片到返回的值GetInteger会导致以下异常:System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'start')

最小可重现示例

0 投票
1 回答
652 浏览

c# - C# 六工 ImageSharp 运行时错误 System.Memory 4.0.1.0 Visual Studio 2019

在 Visual Studio 2019 中加载的需要图像处理的项目中,使用了Six Labors ImageSharp库。但是在尝试加载图像时,会弹出运行时错误:

在使用 ImageSharp 的项目中,安装了 System.Memory 引用并且属性说它是4.0.1.0. 但是当编译并检查 DLL 的详细信息时,它会说4.6.28619.1

我尝试删除引用并使用 NuGet 重新安装,但版本差异相同。NuGet 包也不显示4.0.1.0“以前的版本”部分下列出的版本。

试图重新安装不同的可用版本,System.Memory但没有奏效。还搜索了 GitHub repo 上的问题,但没有提及。

ImageSharp 是否链接到4.0.1.0并且无论您安装什么版本,它都会显示4.0.1.0

我该如何解决这个问题,以便不显示运行时错误并且我可以使用 ImageSharp?

更新:安装每晚构建“解决”了问题。这个使用 System.Memory >= 4.5.3