Я создал метод под названием «тег», который возвращает объект HtmlTag и получает параметры типа «HtmlTag» (см. ниже).C# params без встроенного массива вызывают ошибку «Именованные параметры аргумента должны появляться после того, как были заданы все фиксированные аргументы»
Я пытаюсь передать параметры без встроенного массива, но получаю сообщение об ошибке: «Именованные параметры аргументов должны появляться после того, как были указаны все фиксированные аргументы».
Ошибка решена только путем вставки параметров в встроенный массив (которого я действительно не хочу).
Могу ли я передать параметры без массива?
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("...")));
У меня нет никаких ошибок, когда я ввожу значение «содержание» Params внутри строкового массива HtmlTag (смотри ниже):
tag("form", "", attributes: ObjList("...."), content: new HtmlTag[] {
tag("input", "token", attributes: ObjList("..." + token + "...")),
tag("label", "...", attributes: ObjList("..."), text: "..."),
tag("...", "...", attributes: ObjList("..."))});
Если вы хотите передать приведенные аргументы, я не думаю, что есть способ, кроме создания массива. Именованные аргументы и 'params' не хорошо ладят – Jcl
Именованные и необязательные аргументы ... ugh. Так что очень VB. Используйте надлежащие перегрузки. – Nyerguds