Цепочка вызовов
Когда метод возвращает объект, на этом объекте сразу можно вызвать следующий метод. Это называется цепочкой вызовов.
Два способа написать одно и то же
Через промежуточные переменные — так нагляднее:
var doc = instance.ActiveTab.MainDocument;
var he = doc.FindElementById("input-text");
string value = he.GetValue(false);
project.SendInfoToLog(value);Через цепочку — короче, но читается тяжелее:
string value = instance.ActiveTab.MainDocument.FindElementById("input-text").GetValue(false);
project.SendInfoToLog(value);Результат одинаковый. Для обучения лучше использовать первый вариант — с переменными. Цепочки начинают применять когда код уже хорошо читается в голове.
Почему это работает
Каждый шаг возвращает объект, у которого есть свои методы:
instance → объект Instance
.ActiveTab → объект Tab
.MainDocument → объект HtmlDocument
.FindElementById("input-text") → объект HtmlElement
.GetValue(false) → строка string
На строке методов больше нет — цепочка заканчивается.
Практика на Sandbox
var doc = instance.ActiveTab.MainDocument;
// заполнить поля в Zone 01
doc.FindElementById("input-text").SetValue("Иван", false);
doc.FindElementById("input-email").SetValue("ivan@mail.ru", false);
doc.FindElementById("input-tel").SetValue("+79001234567", false);
doc.FindElementById("textarea-main").SetValue("Комментарий", false);
project.SendInfoToLog("поля заполнены");Здесь каждая строка — короткая цепочка из двух шагов: найти элемент → установить значение.