問題タブ [generic-method]
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# - C# は、指定された型をジェネリック メソッドのパラメータとして受け取るメソッドを呼び出します
私は C# の初心者で、ずっと気になる問題があります。
誰かが解決策を作ってくれれば、とても感謝しています。
私は次のようなコードを持っています:
お気づきのように、私がやりたいことは単純です。
GenericMethod の Type T で指定された値を作成し、指定された Handle Method を呼び出します。それはC++で動作しますが、C#は私に次のように言い続けます
「'T' 式をタイプ 'Object1' に変換できません」
この問題を解決するにはどうすればよいですか? 事前にサンクス。
c# - ジェネリック型と継承の混乱
次のようなクラス階層があります。
次のようなビジネスロジッククラスがあります。
ここで実装したいのは、どのクラスと bll を取得する必要があるかを決定する関数です。関数の戻り値の型に IBaseBLL インターフェイスを追加しました。
私の機能は次のとおりです。
次のように関数を呼び出すと:
しかし、コメント「エラー行」を追加した行で例外をキャストできません
では、この場合はどうすればよいでしょうか。私が欲しいのは、どの bll を使用するかを決定する関数を作成することだけです。(私は bll 宣言を変更したくありません)。
java - このコードがコンパイルされるのはなぜですか? (Javaジェネリックメソッド)
次のコード:
ステートメント JavaTest.max(List, 0, 0) はどのようにコンパイルされますか? スクラブはどのように
Comparable<String>
スーパータイプのスクラブではないものを実装していますか? に変更するscruby<Integer>
と、コンパイルされず、エラーが発生します。では、なぜ今コンパイルできるのでしょうか。生の型がコンパイルされるのはなぜですか?
c# - 明示的なジェネリック型の動作を伴う奇妙なジェネリック メソッド呼び出し
ジェネリック メソッドを持つ非ジェネリック クラスがあります。このメソッドのジェネリック型は出力型を定義し、使用法から推測できないため、明示的にジェネリック型を提供する必要があります。この型は、ジェネリック呼び出し元のメソッド型パラメーターから渡されることもありますが、あるインスタンスでは、自分で明示的に指定する必要があります。
問題は、明示的に提供されたジェネリック型メソッド呼び出しを呼び出すと、実行されず、まったく無関係な型が返されるように見えることです。この呼び出しにデバッグできず、無効な結果が得られます。しかし、特に奇妙なことに、実行が中断されることはありません。ジェネリック型が呼び出し元のジェネリック メソッド型から渡される他の場所から同じメソッドが呼び出されると、すべてが定義どおりに機能するように見えます。
私は何が起こっているのか完全に失われています。
インターフェイスでの私のメソッド定義(およびクラスで後で実装されます):
私Record
のクラスは抽象的ではなく、継承する型は 1 つだけです。
私はこれを行うメソッドを呼び出しています:
実行がこの行にF11到達すると、デバッグするためにヒットしますが、実行は次の文にジャンプするだけです。record
変数をチェックすると、タイプRecord
ではなくSystem.String
、パラメータの値を持っていますcategoryName
。これは、何かが実行されることを意味しますが、それは間違いなく私のジェネリック メソッドの本体ではありません。
奇妙なことに、他の場所では同じ呼び出しが期待どおりに機能します。
これはどのように説明でき、何が間違っているのでしょうか?
c# - C#特定の型を知らずにジェネリックメソッドにアクセスする
リフレクションを使用して変換するメソッドがありList<T>
ます。DataTable
各リストが異なるタイプのオブジェクトを保持できる複数のリストを渡すことにより、DataSet を作成するためにそのメソッドを活用したいと考えています。
以下は、コンパイル時エラーが発生するコードです。
" The type arguments for method 'ExportToExcel.CreateExcelFile.ListToDataTable<T>(System.Collections.Generic.List<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly
. " - 行 " var dt = Util.ListToDataTable(item);
"
そして、これは私の呼び出しtestMethodです
メソッド Util.ListToDataTable には、実行時にのみ取得する特定のタイプが必要だと思います。このようなシナリオでは、このメソッドをどのように呼び出すのでしょうか?
c# - ジェネリック メソッドの非同期バージョンの作成
型を逆シリアル化するためのこの一般的な方法があります
今、私はこのように試した非同期バージョンを作りたいと思っています。
T が欠落しているため、明らかに async メソッドに構文エラーがあります。
私もこれを試しましたが、エラーが発生します。
非同期メソッドの正しい書き方を教えてもらえますか?
java - ジェネリック メソッドに Mockito を使用した ClassCastException
ジェネリックメソッドをテストするためにmockitoを使用しています。しかし、junit-test を実行すると ClassCastException が発生します。
テスト中のメソッドは次のようになります。
モックは次のようになります。
Exception はwhen-methodの 2 番目の定義で表示されます。このメソッドは、変更できない 1 つのタイプのみを受け入れているようです。しかし、なぜそうなのですか?プレーン Java で 2 つの異なる型を持つジェネリック メソッドを使用すると、例外は表示されません。
誰か助けてくれませんか?
asp.net-mvc - 特定のタイプのビューのみで HtmlHelper 拡張メソッドを使用できるようにすることは可能ですか?
IEnumerable コレクションに独自のページングを実装しようとしています。だから、私は PagedList というクラスを持っています。クラス自体の作業は終了しました。あとは、実際のページをレンダリングする HtmlHelper 拡張メソッドを記述するだけです。これが最も簡単な方法です(少なくとも私が考えることができます):
しかし、このメソッドを PagedList に厳密に型指定されたビューでのみ使用できるようにすることは可能ですか?