問題タブ [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.

0 投票する
4 に答える
2922 参照

asp.net-mvc - カスタムASP.NETMVCHtmlHelper拡張機能を使用していますか?

他の開発者がASP.NETMVCHtmlHelperクラス用に作成したカスタム拡張機能を確認することに興味があります。

マイクロソフトは素晴らしいスタートを切ったと思いますが、いつものように、埋めるためにたくさんの空き穴を残しました!

画像のレンダリング、アクションリンクの画像としてのレンダリングなどのためにいくつかを作成する必要があるようです。

実際にリストをまとめて、他の開発者の時間と労力を節約することは有益かもしれないと思いました。正直なところ、私も時間を節約できます。=)

HtmlHelperクラスの他の拡張メソッドへのWebサイトリンクがある場合は、それらを提供してください。

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

c# - Null Object パターンの代わりの拡張メソッド

階層内の null のチェックを避けるために拡張メソッドを使用することに疑問があります。例:

利用可能な Null オブジェクト パターンがあることは知っていますが、このタイプの拡張メソッドを使用したソリューションの方が優れているように見えます。

このソリューションは良いと思いますか、それとも悪いと思いますか (悪い/良いデザイン、明快さ、その他何でも)?

「良い」または「悪い」に投票してください。また、その理由を教えてください。投稿にはコミュニティとしてフラグが付けられます。

0 投票する
4 に答える
1929 参照

c# - 拡張メソッドを提供するパブリッククラスがIntellisenseに表示されないようにするにはどうすればよいですか?

Intellisenseから、拡張メソッドを提供することを唯一の目的とするクラスの名前を「隠す」方法はありますか?

Intellisenseリストからクラス名を削除したいのですが、通常の方法でIntellisenseを介して外部アセンブリでクラスの拡張メソッドを使用できるようにする必要があります。

0 投票する
6 に答える
33374 参照

c# - 拡張メソッドを特定するための考察

C# では、メソッドが拡張メソッドとしてクラスに追加されたかどうかを判断するためにリフレクションを使用する手法はありますか?

以下に示すような拡張メソッドが与えられた場合、文字列クラスに Reverse() が追加されていると判断できますか?

拡張メソッドが開発者によって適切に追加されたことを単体テストで判断するメカニズムを探しています。これを試みる理由の 1 つは、開発者が同様のメソッドを実際のクラスに追加する可能性があり、その場合、コンパイラがそのメソッドを取得するためです。

0 投票する
3 に答える
1448 参照

c# - インライン データバインディング コンテキスト内での拡張メソッドの使用

DateTime と Int32 に一貫した書式設定を適用するために使用するいくつかの拡張メソッドを使用しようとしています。これはコード ビハインドではまったく問題なく動作しますが、データバインディングに問題があります。

私は得る:

為に

(ユーザーコントロールに含まれるグリッドビューのテンプレートフィールド内)

ユーザーコントロールの上部に拡張メソッドが定義されている名前空間を含めている場合でも:

他の誰かがこれに遭遇しましたか?それを解決する方法はありますか?

編集:私の間違い、上記は次のようになります:

すなわち。私は名前空間を間違って参照していません(コードビハインドで逐語的に機能します)

0 投票する
11 に答える
189228 参照

.net - .Any() と .Count() > 0 のどちらのメソッドのパフォーマンスが優れていますか?

System.Linq名前空間では、IEnumerable を拡張しAny()およびCount() 拡張メソッドを持つことができるようになりました。

コレクションに 1 つ以上の項目が含まれていることを確認したい場合、.Any()拡張メソッドではなく拡張メソッドを使用する必要があると最近言われまし.Count() > 0た。.Count()拡張メソッドはすべての項目を反復処理する必要があるからです。

次に、一部のコレクションには、 または であるプロパティ(拡張メソッドではない) がありCountますLength。またはの代わりにそれらを使用する方が良いでしょう.Any().Count()?

はい/なえ?

0 投票する
7 に答える
8722 参照

c# - 拡張メソッドの欠点?

拡張メソッドは、任意のクラスに必要な関数を多数追加できる非常に便利な機能です。しかし、私に問題を引き起こす可能性のある不利な点があるかどうかは疑問です. コメントや提案はありますか?

0 投票する
3 に答える
4184 参照

c# - 匿名型 - 際立った特徴はありますか?

型が実際に匿名型であるかどうかを判断するために使用するものはありますか? たとえば、インターフェイスなどですか?

目標は、次のようなものを作成することです...

それとも、匿名型の美しさだけですか? 新しい形をとっているので、それ自体を識別するものは何もありませんか?

注-オブジェクトクラスの拡張メソッドを記述できることはわかっていますが、それは少しやり過ぎのように思えます。

0 投票する
4 に答える
6720 参照

c# - Parallel.For に似た既存の LINQ 拡張メソッド?

重複の可能性:
IEnumerable<T> の foreach に相当する LINQ

ienumerable の linq 拡張メソッドは非常に便利ですが、何も返さずに列挙内の各項目に計算を適用するだけの場合は、それほど役に立ちません。だから、おそらく正しい方法が欠けているだけなのか、それとも組み込みバージョンが利用可能であればそれを使用したいので本当に存在しないのかと思っていましたが、見つけられませんでした:-)

.ForEach メソッドがどこかにあると断言できたのですが、まだ見つけていません。それまでの間、他の人に役立つ場合に備えて、独自のバージョンを作成しました。

使用法は次のとおりです。

myEnumerable.For<MyClass>(delegate(MyClass item) { item.Count++; });

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

c# - システム名前空間に独自の拡張メソッドを記述しても問題ありませんか?

私は最近かなり拡張メソッドを使用しており、それらの多くの用途を見つけました。私が抱えている唯一の問題は、それらがどこにあり、拡張メソッドを取得するためにどの名前空間を使用するかを覚えていることです。

しかし、私は最近、System 名前空間、System.Collections 名前空間、または意味のある他のシステム名前空間に拡張メソッドを作成することを考えました。たとえば、次のように実装しました。

これは正しいことですか?