当然、読みやすさの点ではありません。個別のメソッドをいつでも個別の行に配置できるからです。むしろ、何らかの理由で、過度に多数のメソッドを一緒にチェーンすることは危険ですか? 私は主にメソッド チェーンを使用して、個々の使い捨て変数を宣言するスペースを節約し、伝統的に呼び出し元を変更するメソッドの代わりに戻りメソッドを使用しています。文字列メソッドを除いて、私が容赦なく連鎖させているもの。いずれにせよ、非常に長いメソッド チェーンをすべて 1 行で使用した場合の影響について心配することがあります。
誰かのユーザー名に基づいて 1 つのアイテムの値を更新する必要があるとしましょう。残念ながら、正しいユーザーを取得する最短の方法は次のようになります。
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 回の呼び出しでしか持続しないため、次のように要約できます (これにより、余計な 1 を取り除くこともできます)。
SPWeb web = GetWorkflowWeb();
item["Contact"] = web.Lists["Armies"]
.GetItemById(3)
.GetItemFromLookup("Armies", "Allied Army")
.GetSPUser("Commander")
.GetAssociate("Spouse")
.Name;
確かに、すべてが 1 行に収まっていて、int.Parse(ddlArmy.SelectedValue.CutBefore(";#", false))
代わりに3
. それにもかかわらず、これはこれらのチェーンの平均的な長さの 1 つです。可読性を除いて、これらの 10 以上のメソッド チェーンについて心配すべきことはありますか? それとも、本当に長いメソッドチェーンを使用しても害はありませんか?