Calculates a custom function returning a FunctionValue given a list of FunctionValue arguments and the function's current Cell for context.

FunctionValue Calculate(IList<FunctionValue> args, Cell currentCell)
Function Calculate(args As IList(Of FunctionValue), currentCell As Cell) As FunctionValue

An ordered list of FunctionValue arguments that have already been fully evaluated.

The Cell that the current function resides in to use for context sensitive operations

A FunctionValue that contains the resulting value of the function.

 

 

        public FunctionValue Calculate(IList<FunctionValue> args, Cell currentCell)
        {
            StringBuilder result = new StringBuilder("");
            foreach (FunctionValue arg in args)
            {
                result.Append(',');
                switch (arg.Type)
                {
                    case FunctionValueType.BOOLEAN:
                        result.Append((bool)arg.Value ? "True" : "False");
                        break;
                    case FunctionValueType.STRING:
                        result.Append(arg.Value);
                        break;
                    case FunctionValueType.NUMBER:
                        result.Append(((double)arg.Value).ToString("0.#####"));
                        break;
                    case FunctionValueType.NULL:
                        result.Append(' ');
                        break;
                    case FunctionValueType.RANGE:
                        result.Append(arg.Value.ToString());
                        break;
                }
            }
            return new FunctionValue(result.ToString());
        }
    Public Function Calculate(args As IList(Of FunctionValue), currentCell As Cell) As FunctionValue
        Dim result As New StringBuilder("")
        For Each arg As v In args
            If arg.Type <> FunctionValueType.RANGE Then
                result.Append(arg)
            End If
        Next
        Return New FunctionValue(result.ToString())
    End Function