在哪里可以找到 MSIL 字符串常量中的转义字符列表?
我编写了一个程序(用 C# 编写),用于读取和操作从 C# 程序生成的 MSIL 程序。我错误地认为 MSIL 字符串常量的语法规则与 C# 相同,但后来遇到了以下…
CIL 和数组边界检查
让我们假设以下 CIL 程序: .assembly extern mscorlib {} .assembly Program {} .method private static void Main() cil managed { .entrypoint .ma…
如何导出 CIL DLL 中的方法以便本机程序可以调用它?
我审查了 ECMA 335,只找到了对 .export 关键字的引用,该关键字看起来很有前途,但文档很少。我在 StackOverflow 上发现了关于在 C# 中执行此操作的…
.NET IL 是否支持按引用或按值复制?
我所知道的唯一 .NET 语言是 C#。在 C# 中,您可以编写 lhs=rhs ,如果它是一个结构,它将按值复制,如果是一个类,它会按引用复制。 .NET CLI 是否支…
C# 程序:将十六进制数据转换为普通文本:导入库错误
这是我的 C# 程序:我必须将十六进制数据解码为可读格式的普通文本。我更喜欢使用 apache 库中的 Hex 类,我从 http://commons.apache.org/ 下载codec…
ILGenerator 方法内联
给出以下代码: using System; using System.Reflection.Emit; using System.Diagnostics; using System.Reflection; namespace ConsoleApplication1 …
如何交换 .NET IL 堆栈上的前两个位置
我想知道是否可以在不使用非堆栈存储的情况下交换 .net IL 堆栈上的前两个位置。这是堆栈机经常可以做的事情,但在 IL 中似乎没有明显的指令。 原因是…
有什么好的学习CIL的资源吗?
Closed. This question is off-topic. It is not currently accepting answers. 想要改进此问题吗?更新问题,使其关于- Stack Overflow 的主题。 11…
Mac OS X / Mono 下的 Ldfld 问题,可能是 Mono bug
我正在使用第 3 方库 JInt(JavaScript 解释器),它工作正常,直到我切换到 Mac OS X,之后我不断收到 ArgumentNullExceptions,经过一些调查,我发…
为基本算术操作发出 IL
我对 C# 相当陌生,最近了解到可以发出 IL 来实现一个简单的评估堆栈: stack [ B C * A + ] ==> push B, push C, DO MULT, push A, DO ADD, POP retu…
显式空检查与空合并运算符的编译器评估?
考虑以下代码,它使用两种稍微不同的方法来检查 _instance 并在尚未设置时对其进行分配。 class InstantiationTest { private Object _instance; publ…
ThreadAbortException 内部实现
众所周知,.NET Framework 提供了 ThreadAbortException 处理的一些具体实现。意味着该异常无法通过 try-catch-finally 块捕获。更深入地研究一下,我…