Параметры C# без встроенного массива вызывают ошибку "Спецификации именованных аргументов должны появляться после того, как все фиксированные аргументы были указаны"

Я создал метод с именем "tag", который возвращает объект HtmlTag и получает параметры типа "HtmlTag" (см. Ниже).

Я пытаюсь передать параметры без встроенного массива, но получаю ошибку: "Спецификации именованных аргументов должны появляться после того, как все фиксированные аргументы были указаны".

Ошибка устраняется только путем вставки параметров во встроенный массив (что я действительно не хочу).

Разве я не могу передать параметры без массива?

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...}

Посмотрите ниже, как я вызываю метод сверху:

tag("form", "", attributes: ObjList("...."), content: 
                    tag("input", "token", attributes: ObjList("..." + token + "...")),
                    tag("label", "...", attributes: ObjList("..."), text: "..."),
                    tag("...", "...", attributes: ObjList("...")));

У меня нет ошибок, когда я вставляю значение "content" params во встроенный массив HtmlTag (см. Ниже):

tag("form", "", attributes: ObjList("...."), content: new HtmlTag[] {
                    tag("input", "token", attributes: ObjList("..." + token + "...")),
                    tag("label", "...", attributes: ObjList("..."), text: "..."),
                    tag("...", "...", attributes: ObjList("..."))});

1 ответ

Благодаря Nyerguds и Jcl я использую перегруженный метод в качестве ответа. Похоже, что это единственный путь (кроме встроенного массива)

Другие вопросы по тегам