private void Validate(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (_evaluator.IsFunction(name)) { throw new ArgumentException(String.Format(Resources.VariableNameConflict1, name), nameof(name)); } // Allow letters, digits, and underscores, but first character must be a letter. if (!Char.IsLetter(name.First()) || name.Any(c => !IsValidVariableNameCharacter(c))) { throw new ArgumentException(Resources.VariableNameContainsLetters, nameof(name)); } }