からのボクシングの変換はありません、私は、次のパラメータを持つバイナリサーチアルゴリズム、に取り組んでいますジェネリックメソッド:私はこれらの引数を渡すとき、今</p> <p>:int型IComparableを<T>へ
それはそのタイプを語りますintはパラメータFとして使用することはできません(私はジェネリック型が渡される型に関係していないという印象を受けていました)intからIComparableへの 'ボクシング'変換はないということです。
私がやろうとしていたこと:基本的には、このメソッドはさまざまな数値型(int、doubleなど)の検索キーを受け入れるようにしたいので、汎用メソッドでは2つの型を宣言しました。
このコードについて funcデリゲートは、オブジェクトのプロパティcar.Name(string)、car.Wheels(int)の型が異なることを表します。並べ替えられたpropertyFields型に基づいてキーのデータ型をどうにか推測したいのですが、それは複雑すぎるようです。そのため、Fキーでさまざまな型を受け入れています。それに正しい型を与える。
私はこのすべてが混乱しているかどうかわかりませんが、自分のコードについて質問がある場合は、お気軽にお問い合わせください。
編集:BinarySearchメソッドを呼び出すとエラーが発生します。
編集2:propertyFieldの場合、これを引数として渡します。c => c.Longitude(または他のオブジェクトプロパティ)。
あなたのメソッドを宣言する行でエラーになり、またはの 'を実装するように制限を加える必要があります。 –
krillgar
T Key
に服用しなければならないのどちらか'key'パラメータを使用しようとしていますか?あなたがしようとしていることに応じて、 'Fm'が' IComparableこれはあなたの 'BinarySearch'メソッドの実際の署名ですか?エラーは 'F'に制約があることを示唆しています。実装を追加できますか? – Lee
はいメソッドを呼び出す行でエラーが発生し、キーパラメータに整数を渡します。私は投稿を編集します。 – Vocaloidas