Desidero creare un array multidimensionale utilizzando Reflection.Emit e impostarlo come elemento. Come il seguente codice C#:Come creare un array multidimensionale utilizzando Reflection.Emit
int[,] nums = new int[2, 2];
nums[1, 1] = 2;
e si trasformano in codice 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 codice IL per creare array:
newobj instance void int32[0..., 0...]::.ctor(int32, int32)
E il codice IL per impostare elemento dell'array :
call instance void int32[0..., 0...]::Set(int32, int32, int32)
Che tipo di codice IL Generator.Emit() corrisponde a queste due frasi IL?
grazie, ho scritto [,] come [] [] all'inizio e ho sbagliato il codice IL, ora vedo –
'[,]' e '[] []' si riferiscono a due diversi tipi di matrici, vedi [ questa domanda] (http://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays) per ulteriori informazioni sulle differenze. – poke