問題タブ [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 投票する
3 に答える
2566 参照

c# - インターフェースをパラメーターとして拡張メソッドに渡す

拡張メソッドを使用して html ヘルパーを拡張し、RSS リピーターを作成しました。

そこで、ビジネス オブジェクトの 1 つに IRSSable を実装させ、これを HTML ヘルパーに渡そうとします。しかし、私はそれを機能させることができないようです、私は試しました:

正常にコンパイルされますが、null が渡されます

Intellisense は、IEnumerable の問題を IEnumberable IRSSable に渡すことができないことについて嘆きます

  • それで、あなたはそれをどのようにしますか?私が呼び出しているそのメソッドは間違いなく戻りIEnumberable<Issue>、Issueは間違いなくIRSSAbleを実装しています
0 投票する
2 に答える
801 参照

c# - ジェネリックメソッドの MethodInfo を取得するには?

MethodInfoメソッドのオブジェクトを取得しようとしています:

私が抱えている問題は、Func<TSource, Boolean>ビットの型パラメーターを指定する方法を考え出すことです...

助けていただければ幸いです。

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

c# - メソッドと匿名型

メソッドから匿名型を返すことができないことは知っていますが、Select 拡張メソッドがどのように匿名型を返すのか疑問に思っています。それは単なるコンパイラのトリックですか?

編集

L がリストであるとします。これはどのように作動しますか?

戻り値の型は IEnumerable<'a> で、'a = new {String Name}

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

.net - VB.NET拡張メソッド

メソッドの上にタグを適用すると、エラーが発生します

タイプSystem.Runtime.CompilerServices.Extensionが定義されていません。

これが私のサンプルです

どこが間違っているのですか?

編集〜ここのMSDN記事から直接、同じエラー

プロジェクトでVisualStudio2008と3.5Frameworkを使用しています。

解決策〜プロジェクトは2.0フレームワーク上にありました。3.5に変更し、動作します。

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

javascript - MVC ベースのコンポーネント/拡張メソッドを作成するための良い記事を知っている人はいますか?

私はいくつかのプロジェクトのために開発してきたいくつかの拡張メソッドを持っています.現在、それらはいくつかのAJAXに大きく依存して、ビットとピースを機能させています. 問題は、JavaScript ファイルを使用するプロジェクトにコピーして貼り付ける必要があることです。

この JavaScript ファイルは 1 回だけ使用する必要があるため (レンダリングされたコントロールのすべてのインスタンスが同じファイルを使用します)、スクリプト要素を Web リソース (ファイルをリソースとしてアセンブリに埋め込みます)。Web フォームでは、これは問題ではありませんでした。特定の ID を持つスクリプト ブロックをヘッダーに追加し、ページの読み込み時にそれを確認するだけで済みました。

MVC に相当するものは何ですか?相当するものはありますか?

消費者がページに行をコピーして貼り付けたり、追加したり、構成したりする必要のないソリューションが欲しい...何か考えはありますか?

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

.net - Silverlight の .Net フレームワーク バージョン: リストなし.メソッドを検索しますか?

今日、私は悲しいことに気づきました: System.Generic.Collections.List 型のオブジェクトには、私が愛するようになった便利な拡張メソッド (Find、FindAll、FindIndex、Exists、RemoveAll など) がいくつかありません。 .

VS2008 のオブジェクト ブラウザは、私が使用している mscorlib バージョンにこれらのメソッドが存在することを示していますが、ildasm でアセンブリを見ると、それらは存在しません。

ここで明らかな何かが欠けていますか、それとも Silverlight アプリでそれらを利用できるようにする方法はありますか?

また、Silverlight のランタイムと「実際の」ランタイムの違いについて、適切なリファレンスがあるかどうか疑問に思います。

ありがとう!

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

c# - VS 2008 が Intellisense の String クラスの拡張メソッドを表示しないのはなぜですか

String は を実装しているのでIEnumerable<char>、たとえばピリオドを入力するときに、Intellisense で Enumerable 拡張メソッドが表示されることを期待していました。

.Select<char>(...)、などが表示されることを期待してい.ToList<char>()ました。その後、拡張メソッド実際に文字列クラスで機能することに驚きました。Intellisense には表示されません。これがなぜなのか誰か知っていますか?これは、この質問に関連している可能性があります。

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

c# - 単体テスト中の C# 拡張メソッドの異常

Visual Studio 2008 / C# / VS 単体テストを使用。

オブジェクトが特定のタイプであるかどうかを教えてくれる、非常に単純な拡張メソッドがあります。

次のように呼び出されます。

コードをデバッグ モードで実行したり、単体テストをデバッグしたりすると、このメソッドは問題なく動作します。ただし、すべての単体テストをコンテキストで実行した直後に、不思議なことに、このメソッドに対して MissingMethodException が発生します。不思議なことに、同じクラスの別の拡張メソッドには問題がありません。

私は、拡張メソッド自体以外の問題に傾いています。一時ファイルの削除、ソリューションのクローズ/再開/クリーン/再構築などを試みましたが、これまでのところ何も機能していません。

誰もこれに遭遇しましたか?

編集:これはコードの単純化された例です。基本的に、これは、周囲のコードの荷物なしで作成できた、再現可能な最小の例です。この個々のメソッドは、上記のように単体テストに入れると、単独で MissingMethodException もスローします。Jon が述べたように、問題のコードは目前のタスクを完了しません。それは、私が現在懸念している例外の原因です。

解決策: 私はさまざまなことを試しましたが、参照の問題であるというマークの考え方に同意しました。参照の削除、クリーニング/再構築、Visual Studio の再起動が機能しませんでした。最終的に、ハード ドライブでコンパイル済みの DLL を検索し、意味をなさないすべての場所から削除しました。TestResults フォルダー内のインスタンスを除くすべてのインスタンスを削除すると、単体テストを再構築して再実行することができました。

メソッドの内容に関しては、問題を発見したのは単体テストであり、概念を機能させることはできませんでした。O は RunTimeType であるため、あまりアクセスできないようで、関数を正しく返すために IsAssignableFrom() を使用しようとしました。現時点では、この関数は検証方法から削除されており、別の機会に再検討されます。ただし、これを削除する前は、他の多くの方法でこの投稿を開始した元の問題がまだ発生していました.

解決後: 実際の方法は、思っていたほど複雑ではありませんでした。実際の作業方法は次のとおりです。

そして、それを検証するための単体テスト:

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

c# - カスタム Linq 拡張構文

リストから指定された数のランダムなレコードを取得する関数を作成しました。現在、私は次のようなことができます:

(ここで、db は SQL Server DB に接続している私の DataContext です)

現在、ランダムレコードが必要なすべてのエンティティに次のような関数があります。

それは正常に動作しますが、一般的なものにしたいので、どのテーブルでも、どのアイテムのリストでも動作します。次のような拡張メソッドを試しました:

しかし、私は得る:

ハイライトしますGetRandom<T>

ここで何が問題なのかわかりません。誰かが適切な構文をクリアできますか?

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

linq-to-sql - LINQ to SQL 自動生成拡張メソッド

LINQ to SQL を使用してエンティティ クラスを生成すると、必要なものが得られますが、他の拡張メソッド定義も多数得られます。

たとえば、myField (TEXT) の場合、次のようになります。

上記の拡張メソッドの一般的な用途は何ですか?