>>>>>>if (Checked) >>>>>>{ >>>>>> _CheckItemsCount++; >>>>>>} >>>>>>else >>>>>>{ >>>>>> _CheckItemsCount--; >>>>>>} >>>>>>>>>>>
_CheckedItemsCount+= (Checked) ? 1:-1;>>>>
.method private hidebysig static void TestA() cil managed >{ > // Code size 40 (0x28) > .maxstack 2 > .locals init ([0] bool CS$4$0000) > IL_0000: nop > IL_0001: ldsfld bool ConsoleApplication2.Program::Checked > IL_0006: ldc.i4.0 > IL_0007: ceq > IL_0009: stloc.0 > IL_000a: ldloc.0 > IL_000b: brtrue.s IL_001b > IL_000d: ldsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0012: ldc.i4.1 > IL_0013: add > IL_0014: stsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0019: br.s IL_0027 > IL_001b: ldsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0020: ldc.i4.1 > IL_0021: sub > IL_0022: stsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0027: ret >} // end of method Program::TestAv
.method private hidebysig static void TestB() cil managed >{ > // Code size 24 (0x18) > .maxstack 8 > IL_0000: nop > IL_0001: ldsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0006: ldsfld bool ConsoleApplication2.Program::Checked > IL_000b: brtrue.s IL_0010 > IL_000d: ldc.i4.m1 > IL_000e: br.s IL_0011 > IL_0010: ldc.i4.1 > IL_0011: add > IL_0012: stsfld int32 ConsoleApplication2.Program::_CheckItemsCount > IL_0017: ret >} // end of method Program::TestBInteresting. I'd have thought an optimizer would deem the two equivalent, but evidently not.