Esempio n. 1
0
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            object expressionValue;
            bool   foundExpressionValue = m_evaluatedExpressions.TryGetValue(binder.Name, out expressionValue);

            if (foundExpressionValue)
            {
                result = expressionValue;
                return(foundExpressionValue);
            }

            Be   expression;
            bool foundExpression;

            foundExpression = m_letExpressions.TryGetValue(binder.Name, out expression);

            if (foundExpression)
            {
                result = expression();
                m_evaluatedExpressions.Add(binder.Name, result);
            }
            else
            {
                result = null;
            }

            // TODO: Test for false case
            return(foundExpression);
        }