Ich habe eine Methode namens "tag" erstellt, die ein HtmlTag-Objekt zurückgibt und Parameter vom Typ "HtmlTag" erhält (Siehe unten).C# -Parameter ohne Inline-Array verursachen einen Fehler "Benannte Argumentspezifikationen müssen erscheinen, nachdem alle festen Argumente angegeben wurden"
Ich versuche, die Parameter ohne ein Inline-Array übergeben, aber ich bekomme einen Fehler: "Named Argument Spezifikationen müssen erscheinen, nachdem alle festen Argumente angegeben wurden".
Der Fehler gelöst nur durch Einfügen der Parameter in ein Inline-Array (was ich wirklich nicht will).
Kann ich die Parameter nicht ohne ein Array übergeben?
protected HtmlTag tag(string tagName, string id = null, string classes = null,
Dictionary<string, object> attributes = null, Dictionary<string, object> data = null,
string text = null, params HtmlTag[] content)
{yada yada...}
Siehe unten, wie ich die Methode von oben nennen:
tag("form", "", attributes: ObjList("...."), content:
tag("input", "token", attributes: ObjList("..." + token + "...")),
tag("label", "...", attributes: ObjList("..."), text: "..."),
tag("...", "...", attributes: ObjList("...")));
Ich habe keine Fehler, wenn ich den „Inhalt“ params Wert innerhalb einer Inline-Anordnung von HtmlTag (siehe unten) einsetzen:
tag("form", "", attributes: ObjList("...."), content: new HtmlTag[] {
tag("input", "token", attributes: ObjList("..." + token + "...")),
tag("label", "...", attributes: ObjList("..."), text: "..."),
tag("...", "...", attributes: ObjList("..."))});
Wenn Sie die Argumente übergeben wollen, glaube ich nicht, es gibt einen anderen Weg, als es ein Array zu machen. Benannte Argumente und 'params' kommen nicht gut miteinander aus. – Jcl
Benannte und optionale Argumente ... ugh. Also sehr VB. Verwenden Sie die richtigen Überladungen. – Nyerguds