将字符串转换为OpCode



我正试图用C#制作一个指令编辑器,但我一直在创建指令。我需要能够用Mono.Cecil将字符串转换为OpCode,但它似乎无法做到这一点。如果更容易的话,我可以创建一个Dictionary<string, OpCode>,并通过枚举OpCodes中的OpCodes来填充它,但是OpCodes是唯一一个包含OpCodes作为变量的类,而不是在列表中(我认为这可能是为了支持.NET 1),阻止我枚举它们。这就是我的问题所在,我如何将字符串转换为OpCode,或者枚举每个OpCode(以更容易/更快的为准)。

如果性能不是问题,反射会对您有所帮助。

这是你的做法。

var opCodes = typeof(OpCodes)
                    .GetFields(BindingFlags.Static | BindingFlags.Public)
                    .Where(x=> x.FieldType == typeof(OpCode))
                    .Select(x=> (OpCode)x.GetValue(null))
                    .ToArray();
foreach(var opcode in opCodes)
{
   //Do whatever with opcode
}

相关内容

  • 没有找到相关文章

最新更新