本文整理汇总了C#中Microsoft.Scripting.Interpreter.InterpretedFrame.SetStackDepth方法的典型用法代码示例。如果您正苦于以下问题:C# InterpretedFrame.SetStackDepth方法的具体用法?C# InterpretedFrame.SetStackDepth怎么用?C# InterpretedFrame.SetStackDepth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Scripting.Interpreter.InterpretedFrame
的用法示例。
在下文中一共展示了InterpretedFrame.SetStackDepth方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public override int Run(InterpretedFrame frame) {
Debug.Assert(_offset != Unknown);
Interpreter.AbortThreadIfRequested(frame, _offset);
object value = _hasValue ? frame.Pop() : null;
// run finally blocks:
if (_finallyBlocks != null) {
int oldIndex = frame.InstructionIndex;
for (int i = 0; i < _finallyBlocks.Count; i++) {
var finallyBlock = _finallyBlocks[i];
frame.SetStackDepth(finallyBlock.StackDepth);
frame.InstructionIndex = finallyBlock.Start;
// If an exception is thrown and caught in finally the we go on.
// If an exception is thrown but not handled within finally block it is propagated.
frame.Interpreter.RunBlock(frame, finallyBlock.End);
}
frame.InstructionIndex = oldIndex;
}
frame.SetStackDepth(_targetStackDepth);
if (_hasValue) {
frame.Data[frame.StackIndex - 1] = value;
}
// keep the return value on the stack
return _offset;
}