我看说明Interlocked.Increment。方法签名:
public static int Increment (ref int location);
这里进一步写了:
异常
NullReferenceException
地址location是一个指针null。
我不明白的是应该将什么作为参数传递,以便地址值变成null. 这在 C# 中甚至可能吗?如何?
我看说明Interlocked.Increment。方法签名:
public static int Increment (ref int location);
这里进一步写了:
异常
NullReferenceException
地址location是一个指针null。
我不明白的是应该将什么作为参数传递,以便地址值变成null. 这在 C# 中甚至可能吗?如何?
是的,很容易!
异常中的堆栈跟踪显示
- 也就是说,下降的是函数
Interlocked.Increment,而不是空指针的取消引用。另一种方法,没有
unsafe-blocks:好吧,在纯 C# 中,没有互操作
Marshal和类似的东西,这当然是不可能的。大概是这样的
控制台输出