托管指针算术:ref 参数的偏移与迭代
使用 ref 进行安全指针运算,构造通用多维跨度访问器 · 难度:入门 · +10XP
托管指针算术:ref 参数的偏移与迭代
ref 在 C# 中不仅是别名,还可以通过 Unsafe.Add 进行算术操作。本教程构建一个 MultiSpan
public ref struct RowAccessor<T>
{
private ref T _ref;
public RowAccessor(ref T start) => _ref = ref start;
public ref T this[int index] => ref Unsafe.Add(ref _ref, index);
}
int[] arr = { 10, 20, 30 };
var row = new RowAccessor<int>(ref arr[0]);
row[2] = 99; // 修改 arr[2]