Reflection.Emitを使用して多次元配列を作成し、その要素を設定します。配列の要素を設定するReflection.Emitを使用して多次元配列を作成する方法
newobj instance void int32[0..., 0...]::.ctor(int32, int32)
そして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コード:
int[,] nums = new int[2, 2];
nums[1, 1] = 2;
そしてILコードに変わり、次のC#コードと同様に :
call instance void int32[0..., 0...]::Set(int32, int32, int32)
これら2つのIL文に対応するIL Generator.Emit()コードの種類は?
ありがとう、最初に[] []を書いて間違ったILコードを手に入れました。 –
'[、]'と '[] []'は2種類の配列を参照しています。違いについての詳細は、この質問(http://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays)を参照してください。 – poke