【发布时间】:2022-11-30 19:03:33
【问题描述】:
在 C# 中使用 Spans 时,我得到了一些奇怪的结果,我不确定我做错了什么。为了解决问题,我做了一个简单的测试用例:
public static void DecSpans(Span<byte> b1, Span<byte> b2)
{
for (int i = 0; i < b1.Length; ++i)
{
b1[i] = (byte)(b1[i] - b2[i]);
}
}
[DataTestMethod]
public void TestSpan()
{
byte[] buf1 = new byte[4] { 1, 2, 3, 4 };
DecSpans(buf1[..], buf1);
Assert.IsTrue(buf1.All(b => b == 0));
}
buf1 当我把它做成切片时,由于某种原因没有被修改。如果我删除 [..],则修改 buf1。我在这里做违法的事吗?
【问题讨论】:
标签: c#