Естественно, не с точки зрения читабельности, поскольку вы всегда можете разделить отдельные методы на отдельные строки. Скорее, опасно ли по какой-либо причине объединять слишком большое количество методов вместе? Я использую цепочку методов прежде всего для экономии места при объявлении отдельных одноразовых переменных и традиционно использую методы возврата вместо методов, которые модифицируют вызывающую функцию. За исключением строковых методов, я безжалостно цепляюсь. В любом случае я иногда беспокоюсь о влиянии использования исключительно длинных цепочек методов в одну строку.
Допустим, мне нужно обновить значение одного элемента на основе чьего-то имени пользователя. К сожалению, самый короткий способ получения правильного пользователя выглядит примерно так:
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+ цепочек методов? Или нет вреда в использовании действительно длинных цепочек методов?