事实:
CIL 指令
rethrow操作码的正确编码是两字节序列FE 1A。OpCodes.Rethrow.Value(具有 typeshort)0xFE1A在我的 little-endian 机器上具有价值。BitConverter在转换到/从字节序列时尊重机器的字节顺序。在我的 little-endian 机器上,
BitConverter.GetBytes(OpCodes.Rethrow.Value)结果为 byte sequence1A FE。
这意味着,OpCode.Value在 little-endian 机器上使用序列化 aBitConverter不会为操作码生成正确的编码;字节顺序颠倒了。
问题:
是
OpCode.Value记录的字节顺序(如果是,在哪里?),还是“实现细节”?上面的步骤 4 在大端机器上是否也会导致错误的字节顺序?也就是说,会
OpCodes.Rethrow.Value在0x1AFE大端机器上吗?