コード例 #1
0
ファイル: CodeContext.cs プロジェクト: gordonwatts/LINQtoROOT
        /// <summary>
        /// Replace the the variable name with the requested expression.
        /// </summary>
        /// <param name="varName"></param>
        /// <param name="replacementExpr"></param>
        /// <returns></returns>
        public IVariableScopeHolder AddInternal(string varName, Expression replacementExpr)
        {
            Debug.WriteLine("Cache Expression: {0} => {1}", varName, replacementExpr);

            ///
            /// Somethign to get us back to this state
            ///

            IVariableScopeHolder popper = null;

            if (_expressionReplacement.ContainsKey(varName))
            {
                popper = new CCReplacementExpression(this, varName, _expressionReplacement[varName]);
            }
            else
            {
                popper = new CCReplacementExpression(this, varName, null);
            }

            ///
            /// And save the expression for future lookup
            ///

            if (replacementExpr != null)
            {
                _expressionReplacement[varName] = replacementExpr;
            }
            else
            {
                _expressionReplacement.Remove(varName);
            }

            return(popper);
        }
コード例 #2
0
ファイル: CodeContext.cs プロジェクト: gordonwatts/LINQtoROOT
        /// <summary>
        /// Replace the the variable name with the requested expression.
        /// </summary>
        /// <param name="varName"></param>
        /// <param name="replacementExpr"></param>
        /// <returns></returns>
        public IVariableScopeHolder AddInternal(string varName, Expression replacementExpr)
        {
            Debug.WriteLine("Cache Expression: {0} => {1}", varName, replacementExpr);

            ///
            /// Somethign to get us back to this state
            /// 

            IVariableScopeHolder popper = null;
            if (_expressionReplacement.ContainsKey(varName))
            {
                popper = new CCReplacementExpression(this, varName, _expressionReplacement[varName]);
            }
            else
            {
                popper = new CCReplacementExpression(this, varName, null);
            }

            ///
            /// And save the expression for future lookup
            /// 

            if (replacementExpr != null)
            {
                _expressionReplacement[varName] = replacementExpr;
            }
            else
            {
                _expressionReplacement.Remove(varName);
            }

            return popper;
        }