Ipoked at your code for a while, using VS2003, SP1. There's
something really strange going on. I isolated the statement in a
test() function. The first thing that was weird is that I
couldn't get a disassembly for the function in the IDE. Next, I
looked at the IL:
.method private instance void test() cil managed
{
// Code size 27 (0x1b)
.maxstack 2
.locals init ([0] int32[,] V_0,
[1] int32 i,
[2] int32[,] ia,
[3] int32 j)
IL_0000: ldnull
IL_0001: stloc.2
IL_0002: ldc.i4.s 10
IL_0004: ldc.i4.s 20
IL_0006: newobj instance void
[mscorlib]System.Array::$MR$16(class [mscorlib]System.EventHandler)
IL_000b: stloc.0
IL_000c: ldloc.0
IL_000d: call instance void [mscorlib]System.Array::Initialize()
IL_0012: ldloc.0
IL_0013: stloc.2
IL_0014: ldc.i4.2
IL_0015: stloc.1
IL_0016: ldloc.1
IL_0017: ldc.i4.2
IL_0018: mul
IL_0019: stloc.3
IL_001a: ret
} // end of method frmChild::test
Huh, System.Array::$MR$16? Doing something with
System.EventHandler? I just have no idea why this kind of code is
being generated. I'm going to punt and say you are suffering from
a compiler bug. Call Microsoft Support to get a workaround for
this. You've got a good diagnostic here. They'll charge
your creditcard but you'll get it back when they conclude this is a
MSFT bug, not yours. It isn't yours.