問題タブ [fluent-interface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
272 参照

refactoring - 連鎖メソッドをリファクタリングするにはどうすればよいですか?

このコードから始めて:

どのようにリファクタリングできますか:

変換を完了するには、どのようなリファクタリングのシーケンスを実行する必要がありますか?

なんで?これらは何百もある可能性があり、手動で実行してエラーを発生させたくないからです。

流暢なインターフェースの欠点は、簡単にリファクタリングできないことだと思いますか?

注:コードを手動で入力せずに、これを自動的に実行したいと思います。

0 投票する
8 に答える
13716 参照

c# - C#: メソッドのネストに対して 'this' を返しますか?

1 つまたは 2 つのメソッドを何度も何度も呼び出さなければならないクラスがあります。メソッドは現在 を返しvoidます。thisメソッドをネストできるように、return にしたほうがよいのではないかと考えていました。それとも非常に非常に悪いと考えられていますか?または、悪い場合は、同じ型の新しいオブジェクトを返した方がよいでしょうか? またはどう思いますか?例として、加算器クラスの 3 つのバージョンを作成しました。

最初のものは次のように使用できます。

他の 2 つは次のように使用できます。

唯一の違いはa、最初のケースはnew Adder()while であり、後者は最後のメソッドの結果であることです。

最初に見つけたのは、すぐに... 何度も何度も書くのが面倒です。そのため、他のバージョンのいずれかを使用したいと思います。

3 番目は、多くの String メソッドや IEnumerable 拡張メソッドなど、他の多くのメソッドと同じように機能します。var a = new Adder(); var b = a.Add(5);0 だったものと 5 だったものを持つことができるという点で、それには良い面があると思います。そして、最初の物体はいつ死にますか? 最初のメソッドが種類を返すのはいつですか? または?

とにかく、私は戻ってきたものが好きthisで、それを使うと思いますが、他の人がこのケースについてどう思うか知りたいです. そして、ベストプラクティスと見なされるもの。

0 投票する
5 に答える
1116 参照

c# - Func のように機能するパラメーターなしのメソッドを取得する

コードの一部をより流暢にしようとしています。

文字列から HTTP 要求を作成し、応答を文字列として返す文字列拡張機能があります。だから私は次のようなことができます...

成功するまでリクエストを試行し続ける拡張機能を作成しようとしています。私の署名は次のようになります...

私はそれを次のように呼ぶつもりです...

残念ながら、それはうまくいかないようです =)。最初にラムダにしようとしましたが、それもうまくいかないようです。

構文をかなり流暢に保ちながら、私がやろうとしていることを行う方法はありますか? 提案は大歓迎です。

ありがとう。

0 投票する
1 に答える
762 参照

c# - Fluent インターフェイス / 拡張メソッド - フラット リストをナビゲーション ツリーに変換する

現在、Tab 型の IEnumerable を TabNodes の階層コレクションに変換する拡張メソッドがあります。

たとえば、次の例では、TabId 32 を持つ親の下にある TabNodes のコレクションが得られます。深さの最大レベルは 4 です。

これは紛らわしく、さらに洗練させるにはあまり適していません。ParentID の代わりに特定のレベルを指定したい場合はどうすればよいですか?

私がやりたいことは次のようなものです:

これをエレガントに行う方法に行き詰まっています。手伝って頂けますか?

これは、拡張メソッドによって呼び出される現在の関数です ( www.scip.beで見つけた記事に基づいています)。

0 投票する
1 に答える
1486 参照

c# - linqの「SelectNew」は評価/ロードをトリガーしますか?

私は現在IEnumerable<T>、ParentIdプロパティを介して相互に参照するオブジェクトのフラットリストから階層を構築するために実装するクラスを作成しようとしています。このための流暢なインターフェースを書きたいので、このようなことができます

NodeHierarchy : IEnumerable<TabNode>それで、yieldステートメントについて、クラス内でこのようなことができるかどうか疑問に思います。

または私がこのようなことをしなければならないかどうか:

0 投票する
1 に答える
2246 参照

c# - Castle Windsor Fluent API: コンポーネント パラメータ値を構成済みプロパティに設定する方法

Castle Windsor の Fluent 登録を始めたばかりで、登録時に XML 構成ファイルのプロパティ セクションで定義したプロパティを参照する方法がわかりません。したがって、コンポーネントを登録するためのこのコードがあります。

#{ConnectionInfo.DefaultTimeout} は、Fluent 登録の前にコンテナーにロードされる XML 構成で定義したプロパティですが、これは機能しません。このコードでは、Eq() に渡されるパラメーターはリテラルとして扱われます。 (これは他のコンポーネントでも機能しますが、つまり ${My.Component} は機能します)

新しい Fluent API を介してコンポーネントを登録する際に、構成ファイルからプロパティを参照する方法はありますか?

ありがとう

0 投票する
2 に答える
138 参照

.net - 異なるグラフを持つオブジェクトをロードするための適切なパターンを見つける

使用されているコンテキストに応じて、異なるグラフ (関連するエンティティ) を持つオブジェクトの読み込みを処理する最善の方法を見つけようとしています。

たとえば、これは私のドメイン オブジェクトのサンプルです。

私が理解しようとしているのは、この情報の使用方法に応じて、この情報を異なる方法でロードする方法です。

たとえば、フロント ページにはすべてのパズルのリストがあります。この時点では、パズルの解決策やそれらの解決策の手順についてはあまり気にしません (これはかなり重くなる可能性があります)。私が欲しいのはパズルだけです。次のようにコントローラーからロードします。

後のパズル ビューでは、現在のユーザーのソリューションのみを気にします。すべてのソリューションとすべてのステップを含むグラフ全体をロードしたくありません。

IPuzzleService 内では、メソッドは次のようになります。

私のセッションは各作業単位の直後に破棄されるため、遅延読み込みは実際には機能しません。私のコントローラーにはリポジトリの概念がないため、セッション状態を管理せず、ビューがレンダリングされるまで保持できません。

ここで使用する正しいパターンは何かを理解しようとしています。サービスにさまざまなオーバーロードがありますGetPuzzleWithSolutionsAndVotesか?GetPuzzlesForDisplayViewGetPuzzlesForListView

私は理にかなっていますか?私はベースから離れていますか?助けてください。