问题标签 [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.
c# - 在哪里可以找到 System.Memory 文档?
我在哪里可以找到 Span<T> 和 Memory<T> 之类的实际文档?
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
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 有什么区别?
c# - 跨度和二维数组
是否可以将新的System.Memory Span 结构与二维数据数组一起使用?
虽然 testArray 和 testString 有一个 AsSpan 扩展,但 testMulti 不存在这样的扩展。
Span 的设计是否仅限于处理一维数据数组?
我还没有找到使用 Span 处理 testMulti 数组的明显方法。
c# - 结构为 ReadOnlyMemory表示
我有以下结构:
我想通过网络发送它,而不需要分配(使用SendAsync(ReadOnlyMemory<byte>)
)调用。
如何Memory<byte>
从给定的结构中获取?
我最终有Span<byte>
,然后卡住了。
有什么方法可以将结构直接放入流中而不进行任何分配?
我在netcoreapp2.1
。
c# - 使用跨度作为子字符串的替代品
我已经阅读了几篇关于如何使用 Span 替换某些字符串操作的文章。因此,我已经更新了我的代码库中的一些代码以使用这个新功能,但是,为了能够就地使用它,我必须调用.ToString()
.
是否.ToString()
有效地否定了我从使用中获得的好处,Span<T>
而不是Substring
因为这必须分配内存?在这种情况下,如果 Span 以这种方式获得好处,还是不可能?
c# - 跨度 - 访问原始值
我希望获得 Span 代表的原始值。以下面的代码为例,我如何在不创建副本的情况下DoWork
访问原始字节数组?
我发现 2 个带有辅助方法的静态类(如上所示)可能会有所帮助,但我不确定在不使事情变得比复制更慢的情况下最好的方法是什么。
c# - 有没有办法使用 ReadOnlySpannetstandard2.0 类库中 StringBuilder 和 TryParse 方法的重载?
我有一个 NetStandard2.0 类库。我已经导入了System.Memory
nuget 包,这意味着我可以Span<T>
在其中使用。这很好,但是 nuget 包似乎不包括其他原始类型的ReadOnlySpan<char>
重载StringBuilder
和TryParse()
方法。
如果我可以升级到 netstandard21,我会这样做,这个问题就会消失,但由于我无法控制的原因,我不能这样做。
此代码适用于netcoreapp2.2
程序,但不适用于 netstandard20 类库,即使System.Memory
作为依赖项:
是否有另一个我可以参考的 nuget 包为 netstandard20 库带来跨度StringBuilder
支持TryParse
?
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')
最小可重现示例
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