Ich möchte ein mehrdimensionales Array mit Reflection.Emit erstellen und das Element festlegen. Wie die # -Code folgenden C:So erstellen Sie ein mehrdimensionales Array mit Reflection.Emit
int[,] nums = new int[2, 2];
nums[1, 1] = 2;
Und IL-Code verwandeln sich in:
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)
Die IL-Code-Array zu erstellen:
newobj instance void int32[0..., 0...]::.ctor(int32, int32)
Und die IL-Code des Arrays Element festlegen :
call instance void int32[0..., 0...]::Set(int32, int32, int32)
Welche Art von IL Generator.Emit() - Code entspricht diesen beiden IL-Satz?
danke, ich schrieb zuerst [,] als [] [] und bekam einen falschen IL-Code, jetzt sehe ich –
'[,]' und '[] []' beziehen sich auf zwei verschiedene Arten von Arrays, siehe [ Diese Frage] (http://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays) für weitere Informationen über die Unterschiede. – poke