但是,在这两种情况下,字节码在ECMA-CIL方面都必须是“正确的CIL”。使用C#的不安全特性可以生成正确但不可验证的字节码。可验证的字节码可以来自日常的C#。为此,必须在每次指令之前静态推断有关堆栈状态的基本信息。例如,元素的数量和非常粗糙的类型推断。如果推断的信息有一个以上的前身,则必须在基本块的开头合并它。
我的问题是,是否允许合并不同类型的托管指针?我指的是正确的CIL,但不一定是可验证的CIL。.method public static void Bar (int32& a, uint
number * right_recursive_factorial(number.pred)当我以大于9000 ()的值调用这些方法时,会得到不同的结果:
left_recursive_factorial有人能更详细地解释是什么导致左递归和右递归的执行方式不同(通常是在Ruby中,尤其是在Ruby中),如果您有选择其中一个的可能性,为什么要选择它(以及为什么在Ruby中选择左)?