パラメータのセットの最大値を与える汎用関数を定義しようとしています。それはこのように書きます:部分的順序付けのためのIComparable型インターフェイス
public static TResult Max<TResult>(params TResult[] items)
{
TResult result = items[0];
foreach (var item in items)
{
if (item > result)
result = item;
}
return result;
}
これは、コンパイラは「item>の結果」の行にcroaksことを除いて、すべてが順調と良いです。私が必要とするのは、TResultに>演算子(または<も同様に)を強制する方法です。しかし、これを行うための簡単に利用可能なインターフェースはありません。これは部分的に順序付けされているので、かなり一般的な作業のようです。巨大な.NETのドキュメントで何か不足していますか?
合計発注(つまり、「IComparable」)がここで適切でないのはなぜですか? –
linqを使用できますか? –