コード例 #1
0
            public override void Emit(IMemberEmitter member, ILGenerator gen)
            {
                Label trueLabel  = gen.DefineLabel();
                Label falseLabel = gen.DefineLabel();

                _expression.Emit(member, gen);
                gen.Emit(_expression.BranchIfTrue, trueLabel);
                _expression.Emit(member, gen);
                gen.Emit(_expression.BranchIfFalse, falseLabel);
                gen.Emit(OpCodes.Ldstr, "No label selected");
                gen.Emit(OpCodes.Ret);
                gen.MarkLabel(trueLabel);
                gen.Emit(OpCodes.Ldstr, "True");
                gen.Emit(OpCodes.Ret);
                gen.MarkLabel(falseLabel);
                gen.Emit(OpCodes.Ldstr, "False");
                gen.Emit(OpCodes.Ret);
            }