/// <summary>
        /// A helper method used by TFunction constructors to copy argument names and argument default values passed
        /// to them.
        /// </summary>
        void CopyArguments(string[] argNames, TType[] defaultArgs)
        {
            if (argNames == null)
            {
                ArgNames = null;
                DefaultArgs = null;
            }
            else
            {
                ArgNames = new string[argNames.Length];
                if (argNames.Length > 0) argNames.CopyTo(ArgNames, 0);

                if (defaultArgs == null) DefaultArgs = new TType[argNames.Length];
                else
                {
                    DefaultArgs = new TType[argNames.Length];
                    if (defaultArgs.Length > 0) defaultArgs.CopyTo(DefaultArgs, 0);
                }
            }
        }