0
我在C#中为字节码解释程序创建了一个类库,作为编码练习。我有两个字节码解释器,一个使用32位字,另一个使用64位字。我想创建一个在两位口译员之间共享的统一指令集。在C#中为两个不同字长的字节码解释程序使用enum作为指令集
我想使用泛型来解决这个问题,就像我会使用C++模板:
(C++代码)
template<typename T>
enum Instruction : T {
add,
subtract,
...
}
而且我本来有32位翻译使用Instruction<int32>
和64位解释器使用Instruction<int64>
。
但是,在做了一点研究之后,我没有找到一种在C#中使用enum的泛型方法。
此C#代码不会编译:
enum Instruction<T> : T {
Add,
Subtract,
....
}
有我丢失的东西在这里还是我采取错误的做法完全?
为什么不分享32位指令都解释之间设置?或者如果你想有2个类库 - 使用[条件编译](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if)。 – Dmitry
如果你希望你的指令集是统一的,为什么需要64位指令?您将无法使用额外的位。 – IllidanS4