Не с точки зрения читабельности, естественно, так как вы всегда можете расположить отдельные методы в отдельные строки. Скорее, опасно ли по какой-либо причине связывать чрезмерно большое количество методов вместе? Я использую цепочку методов в первую очередь для экономии места при объявлении отдельных одноразовых переменных и традиционно использую методы возврата вместо методов, которые изменяют вызывающую программу. За исключением строковых методов, я безжалостно привязываю их к цепочке. В любом случае, меня иногда беспокоит влияние использования исключительно длинных цепочек методов в одной строке.
Допустим, мне нужно обновить значение одного элемента на основе чьего-то имени пользователя. К сожалению, самый короткий способ получить правильного пользователя выглядит примерно так:
SPWeb web = GetWorkflowWeb();
SPList list2 = web.Lists["Wars"];
SPListItem item2 = list2.GetItemById(3);
SPListItem item3 = item2.GetItemFromLookup("Armies", "Allied Army");
SPUser user2 = item2.GetSPUser("Commander");
SPUser user3 = user2.GetAssociate("Spouse");
string username2 = user3.Name;
item1["Contact"] = username2;
Все с 2 или 3 длится только один вызов, поэтому я мог бы сжать его следующим образом (что также позволяет мне избавиться от лишней 1):
SPWeb web = GetWorkflowWeb();
item["Contact"] = web.Lists["Armies"]
.GetItemById(3)
.GetItemFromLookup("Armies", "Allied Army")
.GetSPUser("Commander")
.GetAssociate("Spouse")
.Name;
По общему признанию, это выглядит намного длиннее, когда все в одной строке и когда у вас есть int.Parse(ddlArmy.SelectedValue.CutBefore(";#", false))
вместо 3
. Тем не менее, это одна из средних длин этих цепочек, и я могу легко предвидеть некоторые исключительно длинные отсчеты. За исключением удобочитаемости, есть ли что-то, о чем я должен беспокоиться об этих 10+ цепочках методов? Или нет ничего плохого в использовании действительно очень длинных цепочек методов?