我在我的 dll 文件中弄乱了我的 IL 代码(仅用于学习目的)。我想看看如果我注入自己的 IL 代码会发生什么,例如IL_9999: box !T
... 我想知道偏移值是否真的很重要......
就性能而言,9999 的 IL 偏移是否比 1000 的 IL 偏移成本更高?我的猜测是它不会因为编译器本身在按顺序运行时会跳过偏移量:
IL_000d: ldc.i4.3
IL_000e: box [mscorlib]System.Int32
IL_0013: call instance int32 [mscorlib]System.Enum::CompareTo(object)
IL_0018: call void [mscorlib]System.Console::WriteLine(int32)
IL_001d: nop
此外,如果将我的 9999 的 IL 偏移量放入这些其他价值低得多的 IL 偏移量调用的中间,是否会损害我的应用程序?