例如:
fixed(byte* ptr = &myBuffer[23])
{
...
}
myBuffer 是否会被固定(这样我就可以安全地在固定块中进行指针运算,只要我不超过数组的长度)还是只会固定索引 23 处的字节?
例如:
fixed(byte* ptr = &myBuffer[23])
{
...
}
myBuffer 是否会被固定(这样我就可以安全地在固定块中进行指针运算,只要我不超过数组的长度)还是只会固定索引 23 处的字节?
从 C# 语言规范版本 5.0,第 18.6 节:
例如,如果由固定指针初始化程序计算的地址引用对象的字段或数组实例的元素,则固定语句保证包含对象实例在语句的生命周期内不会重新定位或处置
我的重点
(通过查看MSDN上的fixed
声明指出了这一点)