这是我的代码。我有一个尝试,最后声明。在try块中,我有一个固定语句,用于设置指针变量。
try
{
fixed (char* chRef = p)
{
//code
}
}
finally
{
chRef = null;
}
我正在努力将固定指针变量设置为null,无论尝试如何退出范围。请帮忙。
char* chRef;
try
{
fixed (chRef = p)
{
//code
}
}
finally
{
chRef = null;
}
给我“错误12在固定语句中声明的本地类型必须是指针类型”
答案 0 :(得分:0)
如果这是可能的,您需要确保chRef
在范围内。这意味着将它放在fixed
语句中。所以你写这个:
fixed (char* chRef = p)
{
try
{
//code
}
finally
{
chRef = null;
}
}
但这不起作用,因为不允许指定指针chRef
。毕竟,这是固定的!如果您尝试将固定指针分配给编译器对象:
error CS1656: Cannot assign to 'chRef' because it is a 'fixed variable'
即使你能做到这一点,你也做不到,也没有意义。由于chRef
即将离开范围,因此当您知道没有任何东西可以观察到该修改时,修改它是没有意义的。