コード例 #1
0
        //----------------------------------------------------------------------
        public CResultAErreur Eval(CContexteEvaluationExpression ctxEval, params object[] parametres)
        {
            if (Formule == null)
            {
                return(null);
            }
            int nParametre = 0;
            CContexteEvaluationExpression ctxCopie = new CContexteEvaluationExpression(ctxEval.ObjetSource);

            foreach (CParametreFonctionDynamique parametre in Parametres)
            {
                CDefinitionProprieteDynamiqueVariableFormule def = new CDefinitionProprieteDynamiqueVariableFormule(
                    parametre.Nom,
                    parametre.TypeResultatExpression,
                    true);
                ctxCopie.AddVariable(def);
                if (nParametre < parametres.Length)
                {
                    ctxCopie.SetValeurVariable(def, parametres[nParametre]);
                }
                else
                {
                    ctxCopie.SetValeurVariable(def, null);
                }
                nParametre++;
            }
            CResultAErreur result = Formule.Eval(ctxCopie);

            if (!result)
            {
                result.EmpileErreur(I.T("Error while evaluating method @1|20127"));
            }
            return(result);
        }