AjErl.Expressions.AddExpression.Apply C# (CSharp) 메소드

Apply() 공개 메소드

public Apply ( object leftvalue, object rightvalue ) : object
leftvalue object
rightvalue object
리턴 object
        public override object Apply(object leftvalue, object rightvalue)
        {
            if (leftvalue is int)
                if (rightvalue is int)
                    return (int)leftvalue + (int)rightvalue;
                else
                    return (int)leftvalue + (double)rightvalue;
            else if (rightvalue is int)
                return (double)leftvalue + (int)rightvalue;
            else
                return (double)leftvalue + (double)rightvalue;
        }

Usage Example

예제 #1
0
        private static object Sum(Context context, IList<object> arguments)
        {
            if (arguments[0] is EmptyList)
                return 0;

            AddExpression addexpr = new AddExpression(null, null);
            List list = (List)arguments[0];
            object result = 0;

            while (list != null)
            {
                result = addexpr.Apply(result, list.Head);
                list = (List)list.Tail;
            }

            return result;
        }