動作しませんstring
〜TResult
??一般的な鋳造は、私は、データをロードし、私は一般的な方法を使用してそれを得るタイプに変換し、このコードを使用
答えて
TResult
がobject
かstring
のいずれかでなければできないおそらく仕事をキャスト。あなたが実際にが実体のようなものを作成しようとしてだと仮定すると、私はいずれかはあなたがLINQを使用して(できれ)Func<string, TResult>
かに渡すことをお勧め - あなたはすべてで、この方法は必要ありません。
var list = File.ReadLines(location)
.Select(line => new SomeEntity(line))
.ToList();
を それでもメソッドをしたい場合は、あなたがでし使用:
public static List<TResult> LoadFromFile<TResult>(string location,
Func<string, TResult> selector)
{
return File.ReadLines(location).Select(selector).ToList();
}
...しかし、私はそれはそれだけの価値だかどうかはわかりません。あなたはこれをたくさんやっている場合、私はあなたのファイルハンドルがあっても閉じられますように、あなたがusing
ステートメントを使用する必要があり、あなたは、ファイルから読み込むための必要性を行うとき、サイドノートでは(...
を想定します例外がスローされます)。
"TResult"に明示的な型変換演算子を実装することで、これを実現できます。 オブジェクトからTResultへの明示的なキャスト。
これは実際には「方法で」(いくつかの仮定を伴う)指定されたオブジェクトからのコンストラクタを作成することができる「TResult」のコンストラクタを有すると同じです。
明示的変換演算子は、いくつかの基本クラスに制約のないジェネリックではサポートされておらず、結果はそのベースクラスのみになります。さらに、メソッドを呼び出すインスタンスを持っていないので、ここではインタフェースはそれほど良くありません。 –
インターフェイスの使用状況に関する回答を編集しました。ジェネリックが明示的な変換をサポートしていないことは知らなかった。間違っていれば、学習の助けとなります。ありがとう。 –
- 1. 使用して一般的な方法
- 2. Swiftの一般的なタイプを使用している工場
- 3. 一般的な方法は、現在、私はこのコードを使用していますエンティティフレームワークで
- 4. Hibernateを使用して一般的なオブジェクトを取得する
- 5. 一般的なタイプを使用したリフレクションプロパティの名前
- 6. 一般的な目的として使用するMIMEタイプは何ですか?
- 7. #についての一般的な質問!私はそれらを正しく使用しています
- 8. OOPを使用して一般的な検証を実装する方法は?
- 9. スカラーオプションパーサーを使用して一般的なケースクラスフィールドを解析する方法は?
- 10. java 8 groupBYまたは一般的な方法を使用
- 11. シェイダーユニフォームの一般的な使い方は?
- 12. スワップメソッドを使用して一般的なLinkedListを反転する
- 13. 私は、これらのクラスを持っている一般的な方法
- 14. 一般的なタイプの印刷方法
- 15. カスタムコールアダプタ用の一般的なタイプ
- 16. スウィフト:一般的な構造体の再帰的使用
- 17. 一般的ではなく、ジェンキンスでのcrontabを使用して、具体的
- 18. 一般的にはマジットスタイルを使用しています
- 19. 一般的なレイヤーを使用してアクセスする
- 20. イメージを一般的なリンクバックグラウンドとして使用する
- 21. 一般的なタイプのPsiFieldを取得するには
- 22. コードを使ってデータを一般的に分析する方法は?
- 23. WPF ItemsControlの一般的なItemContainerタイプを取得する方法
- 24. 一般的なライブラリを作成するスプリングブートの使用方法
- 25. F#一般的な配列タイプを拡張する方法は?
- 26. 一般的なタイプとパフォーマンス
- 27. OOを使用して一般的にパラメータを表す方法は?
- 28. 代わりに、メソッドのパラメータの一般的な方法を使用して
- 29. TPL一般的なリストの使用
- 30. erlangの一般的な使用例
SomeEntityとは何ですか?Funcを使用するにはどうすればいいですか? –
@ahmadalishafiee:あなたが作成したいタイプ、つまりあなたが* TResultとして渡すタイプでしょう。私はおそらくあなたはおそらく一般的な方法を必要としないことを示唆しています。編集します。 –
私のプロジェクトのアシスタントクラスを書いてみたいと思います。何度もデータをロードしたいと思っていましたが、いくつかの異なるタイプがありました。データをロードして必要なデータ型に戻す汎用メソッドを作りたいと思います。ジェネリックメソッドなしでこれを行いますか? –