問題タブ [extension-methods]
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.
c# - ラムダで子オブジェクト コレクションを選択する
次のクラス オブジェクトがあります。
...だから、テストリポジトリで次のようにテストデータを作成しています:
..だから今、私はいくつかの良いテストデータを持っています. オブジェクト ツリー/連鎖オブジェクトは私にとって重要です。
必要に応じて、このツリーから個々のオブジェクト コレクションを返したいと思います。たとえば、ツリー全体が必要な場合は、すべての子オブジェクトを含む VacancyCategory リストを返すだけで済みます。すばらしいです。しかし、今は VacancySubCaregory アイテム (9 つすべて) だけを返したいと思います。これは、テスト リポジトリへのパブリック メソッドになります。
.. 明らかに例外なく。GetVacancyCategoriesWithAllChildCollections メソッドの結果を含む _categories というメンバー フィールドがあります。だから私は次のようなものを試してきました
..しかし、VacancySubCategory オブジェクトのリストを返せないようです。私は常にルート コレクション (つまり、VacancyCategory オブジェクトの結果セット) を選択しているようです。私は何を間違っていますか?シンプルだと思います...しかし、それは私を夢中にさせます!
編集
サンクスマット。
あなたの提案は私をこれに導きました:
..これはうまくいきます。あなたはチャンピオンです
python - Djangoでビューをチェーンする方法は?
James Bennettの優れたdjango-contact-formを実装していますが、問題が発生しました。私の連絡先ページには、フォームだけでなく、追加のフラットページ情報も含まれています。
お問い合わせフォームが使用している既存のビューを書き直さずに、ビューをラップまたはチェーンできるようにしたいと思います。このようにして、フォームとフラットページデータの両方を同じテンプレート内にレンダリングできるように、コンテキストを介していくつかの追加情報を挿入できます。
これは可能だと言われていると聞きましたが、どうやって動かすのかわからないようです。連絡先フォームビューと呼ばれる独自のラッパービューを作成し、追加できる属性についてHttpResponseオブジェクトを検査しようとしましたが、どちらであるかがわかりません。
編集: Jamesは、最新のコードはここBitBucketで新しく見つけることができるとコメントしました。
c# - ジェネリック拡張メソッドの記述における型推論の問題
IDictionary<TKey, TValue> [key]
キーが辞書に存在しない場合に例外をスローする方法が時々本当に嫌いです。
もちろんありますがTryGetValue()
、それは使いやすさではなく、パフォーマンスのために最適化されているようです。
だから私は、ああ、それのための拡張メソッドを作るだけだと思った-私はそれをした:
これは、型推論が機能していないように見えることを除いて、正常に機能します。
明らかに、私は次のことができるようにしたい:
そして、値にアクセスできるようにします:
Jon Skeet の記事やソースコードをSystem.Linq.Enumerable
リフレクターに含めて、型推論についていくつか調べましたが、何かが欠けているようです。
これは機能します:
しかし、これはそうではありません
私は何をすべきか。
PS。私はジェネリック型推論の問題に対する解決策を探しているだけで、他の提案はありません。ありがとう。
python - Python の拡張メソッド
Python には C# のような拡張メソッドがありますか? 次のようなメソッドを呼び出すことは可能ですか:
のような既存のタイプではint
?
c# - サードパーティの SDK で関連のない複数の型に共通の拡張メソッドを適用するにはどうすればよいですか?
私は拡張メソッドに恋をし始めていますが、特定のオブジェクト型だけに EM を作成する方法がわかりません。
私は例えば:
私の問題は、このメソッドを Person オブジェクトにも入れたいということです。
AddPhoneNumber を持ち、提供されたオブジェクトを処理する方法はありますか?
または解決策は
ありがとうございました。
c# - C# シリアル化拡張メソッドの問題
TWith2Sugars がここに投稿した拡張メソッドが本当に気に入っています。しかし、私は奇妙な問題に遭遇しました。これを共有クラス ライブラリに入れてシリアル化関数を呼び出すと、次のエラーが発生します。
タイプ MyType は予期されていませんでした。XmlInclude または SoapInclude 属性を使用して、静的に認識されていない型を指定します。
少し調べてみたところ、XmlSerializer は認識できる型のみをシリアル化できることがわかりました。これは、クラス ライブラリにあるクラスを意味すると解釈します。そのライブラリに基づいて構築したプロジェクトではありません。
これを回避する方法はありますか?この関数をクラス ライブラリに配置できますか?それとも、それを使用する各プロジェクトに配置する必要がありますか?
アップデート:
何が問題を引き起こしているのかを突き止めました。次のコードがありました:
これがエラーの原因でした。コードを次のように変更したとき:
すべてがうまくいきました。したがって、学んだ教訓 - 一般的なオブジェクトを (逆) シリアル化しようとしないでください。参照したリンクで最も気に入った点は、クラスに XML 属性タグを付ける必要がないことです。拡張メソッドは機能しました。
質問を締めくくる目的で、[XmlInclude] の使用を示すコード サンプルを使用して、Marc の回答(Marc を含む) を拡張する人に回答を授与します。
c# - LINQ 依存の計算割り当て
C# で次のパターンを使用しています。
私がやりたいことは次のとおりです。
問題は、このパターンを変更して、割り当て中に計算される他の値に依存する値の割り当てを許可するにはどうすればよいかということです。
(おそらく誰かが、d は計算を実行して値を返すプロパティであるべきだと指摘するでしょう。これは不自然な例です。d の値は、c と b に加えて、後で利用できない他の値を使用して計算されると仮定します。 )
c# - (C# で) 文字列を「乗算」できますか?
たとえば、次のような文字列があるとします。
整数値に応じて、基本的に複数回書きたいと思います。
編集:これを実装する独自の関数を簡単に作成できることはわかっていますが、私が知らなかった奇妙な文字列演算子があるかどうか疑問に思っていました
c# - これは ExtensionMethod の有効な使い方ですか?
次の行にifステートメントを書きました
そして、常に 'value ==' の部分を繰り返さなければならないことに悩まされています。私の意見では、これは読みにくくする以外の目的には役立っていません。
上記のシナリオをより読みやすくする次の ExtensionMethod を作成しました。
今、私は簡単に書くことができます
これは ExtensionMethod の適切な使用法ですか?
編集:
すべてのすばらしい答えをありがとう。記録のために:私は方法を保持しました。単純に使用できるという提案new []{value1,value2,value3,value4}.Contains(value)
は正しいですが、私はこの種の if ステートメントを左から右に読むことを好みます (これらの値にこの値が含まれている場合ではなく、この値がこれらのいずれかと等しい場合)。各オブジェクトのインテリセンスにもう 1 つのメソッドが表示されることは、私にとっては問題ではありません。