【发布时间】:2008-11-04 21:49:23
【问题描述】:
我正在用 C# 编写一个虚拟机的实现,我需要实现 VM 的堆栈,它可以包含两种类型的条目 - 返回条目或回溯条目。实现这一点的最佳方法是什么?
我目前使用的是基类型,如下:
class StackEntry { }
class Return : StackEntry { uint pc; }
class Backtrack : StackEntry { uint pc; object backtrack; }
Stack<StackEntry> stack;
这行得通,但产生的类型测试和向下转换感觉很笨拙。
有没有更好的方法来处理这种类型的构造?
【问题讨论】:
-
您能否阐明回溯与返回的实现语义,以及它们对堆栈的作用?