Yea.Reflection.Emit.Commands.If.Setup C# (CSharp) Method

Setup() public method

Sets up the command
public Setup ( ) : void
return void
        public override void Setup()
        {
            ILGenerator generator = MethodBase.CurrentMethod.Generator;
            if (LeftHandSide is FieldBuilder || LeftHandSide is IPropertyBuilder)
                generator.Emit(OpCodes.Ldarg_0);
            LeftHandSide.Load(generator);
            if (RightHandSide is FieldBuilder || RightHandSide is IPropertyBuilder)
                generator.Emit(OpCodes.Ldarg_0);
            RightHandSide.Load(generator);
            if (ComparisonType == Comparison.Equal)
            {
                generator.Emit(OpCodes.Ceq);
                generator.Emit(OpCodes.Ldc_I4_0);
            }
            generator.Emit(ComparisonOpCodes[ComparisonType], EndIfLabel);
        }

Usage Example

Example #1
0
 /// <summary>
 ///     Creates an if statement
 /// </summary>
 /// <param name="leftHandSide">Left hand side variable</param>
 /// <param name="comparisonType">Comparison type</param>
 /// <param name="rightHandSide">Right hand side variable</param>
 /// <returns>The if object</returns>
 public virtual If If(VariableBase leftHandSide, Comparison comparisonType, VariableBase rightHandSide)
 {
     SetCurrentMethod();
     var tempCommand = new If(comparisonType, leftHandSide, rightHandSide);
     tempCommand.Setup();
     Commands.Add(tempCommand);
     return tempCommand;
 }