gpt4 book ai didi

c# - 在 C# 中实现多于一种类型对象的堆栈的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 19:14:36 24 4
gpt4 key购买 nike

我正在用 C# 编写一个虚拟机的实现,我需要实现 VM 的堆栈,它可以包含两种类型的条目 - 返回条目或回溯条目。实现它的最佳方式是什么?

我目前使用的是一个基类型,如下:

class StackEntry { }
class Return : StackEntry { uint pc; }
class Backtrack : StackEntry { uint pc; object backtrack; }

Stack<StackEntry> stack;

这工作正常,但由此产生的类型测试和向下转换感觉很笨拙。

有没有更好的方法来处理这种类型的构造?

最佳答案

我很难想象你将如何使用它,但基本的答案是你使用单一类型和默认操作进行弹出后处理

StackEntry { protected virtual void PostPop(); }
Return : StackEntry { protected override void PostPop(); }
Backtrack : StackEntry { protected override void PostPop(); }

这有意义吗?

关于c# - 在 C# 中实现多于一种类型对象的堆栈的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com