/// <summary> /// Creates a new extension function definition. /// </summary> /// <param name="name"></param> /// <param name="minArgs"></param> /// <param name="maxArgs"></param> /// <param name="argTypes"></param> /// <param name="returnType"></param> /// <param name="fn"></param> public TriflesXPathExtensionFunction(XName name, int minArgs, int maxArgs, XPathResultType[] argTypes, XPathResultType returnType, TriflesXPathInvokable fn) { FunctionName = Checker.NotNull(name, "name"); Minargs = minArgs; Maxargs = maxArgs; if (Minargs < 0) { throw new ArgumentOutOfRangeException("minArgs"); } else if (Maxargs < Minargs) { throw new ArgumentOutOfRangeException("maxArgs", "maxArgs cannot be less than minArgs"); } if (argTypes == null) { argTypes = new XPathResultType[0]; } this.argTypes = argTypes.ToImmutableArray(); ReturnType = Checker.NotNull(returnType, "returnType"); invokable = Checker.NotNull(fn, "fn"); }