Я хочу создать многомерный массив с помощью Reflection.Emit и установить его элемент. Например, следующий код C#:
int[,] nums = new int[2, 2];
nums[1, 1] = 2;
И превратить в IL-код:
IL_0000: nop
IL_0001: ldc.i4.2
IL_0002: ldc.i4.2
IL_0003: newobj instance void int32[0..., 0...]::.ctor(int32, int32)
IL_0008: stloc.0
IL_0009: ldloc.0
IL_000a: ldc.i4.1
IL_000b: ldc.i4.1
IL_000c: ldc.i4.2
IL_000d: call instance void int32[0..., 0...]::Set(int32, int32, int32)
Код IL для создания массива:
newobj instance void int32[0..., 0...]::.ctor(int32, int32)
И код IL для установки элемента массива:
call instance void int32[0..., 0...]::Set(int32, int32, int32)
Какой код IL Generator.Emit() соответствует этим двум предложениям IL?