gpt4 book ai didi

c# - 如何将CIL代码插入到C#中

转载 作者:IT王子 更新时间:2023-10-29 04:43:43 26 4
gpt4 key购买 nike

是否可以在 C# 方法中插入 IL 代码?

最佳答案

我只是posted a utility它允许使用自定义属性将整个 C# 函数体自动替换为内联 IL。与类似的实用程序一样,它通过 ILDASM/ILASM 往返工作,可以将其设置为构建后步骤。该工具还可以调整 PDB,以便在调试器中的各个 IL 指令上保留单步执行和设置断点。它与其他一些往返 IL 内联器的不同之处在于它(仅)替代了整个函数体,如下所示:

    class MyClass
{
[ILFunc(@"
.locals init ([0] int32 i_arg)
ldc.i4.3
ret
")]
int MyFunc(int i_arg)
{
return 3;
}
};

对于性能要求很高的方法,我尝试使用 DynamicMethod 来改进编译器生成的 IL,但发现由于委托(delegate)调用开销而失去了优势。假设没有您真正需要 DynamicMethod 的运行时自定义,Inline IL 提供了手动调整 IL 的好处而没有这种影响。

完整的源代码位于http://www.glennslayden.com/code/c-sharp/inline-il

关于c# - 如何将CIL代码插入到C#中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com