我有一段代码,看起来像这样,在不安全的上下文中:
ValidatePartialOperation(array, startingOffset, runLength);
fixed (double* _op = array)
{
double* op = _op + startingOffset;
callSomething(op, runLength);
}
我在几个不同的地方都有这样的复制粘贴。但是我不喜欢在多个地方使用这种验证和指针算术,所以我想将逻辑组合成一个单行,看起来像:
double* op = preCall(array, startingOffset, runLength);
callSomething(op, runLength);
postCall(array);
甚至更好的是:
using (double* op = preCall(array, startingOffset, runLength))
{
callSomething(op, runLength);
}
但无论发生什么情况,我都不能承受从“修复”版本中损失性能。
我现在的计划是模仿修复语句正在执行的操作,但我实际上不知道那是什么。可能是一些带有固定操作的try-catch块吧?
GCHandle.Alloc()
呢?请问。 - svick