public void ArithOp( LuaState lua, TMS tm, ArithDelegate op ) { var lhs = RKB.Value as LuaNumber; var rhs = RKC.Value as LuaNumber; if( lhs != null && rhs != null ) { var ra = RA; var res = op( lhs.Value, rhs.Value ); ra.Value = new LuaNumber( res ); } else lua.V_Arith( RA, RKB, RKC, tm ); }