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