private void CheckParameterType(ParamObject[] arrParams, int paramIndex, System.Type expectedType)
        {
            ParamObject po = arrParams[paramIndex];

            if (po.Value != null)
            {
                if (po.Value.GetType().IsSubclassOf(expectedType) == false && po.Value.GetType() != expectedType)
                {
                    throw new System.ApplicationException(string.Format("第{0}的参数类型错误,应该是{1}类型", paramIndex + 1, expectedType.Name));
                }
            }
        }
        private ParamObject[] GetParamArray(ArrayList arrParams)
        {
            ParamObject[] result = new ParamObject[arrParams.Count];

            for (int i = 0; i < arrParams.Count; i++)
            {
                EXP_TreeNode node = (EXP_TreeNode)arrParams[i];

                result[i] = new ParamObject(VExp(node), node._Position);
            }

            return(result);
        }