Я пишу реализацию виртуальной машины на C #, и мне нужно реализовать стек виртуальной машины, который может содержать два типа записей - записи возврата или записи возврата. Каков наилучший способ реализации этого?
В настоящее время я использую базовый тип, как показано ниже:
class StackEntry { }
class Return : StackEntry { uint pc; }
class Backtrack : StackEntry { uint pc; object backtrack; }
Stack<StackEntry> stack;
Это работает нормально, но результирующее типовое тестирование и уныние кажутся неуклюжими.
Есть ли лучший способ обработки этого типа конструкции?