|
分類:[.NET 全般]
デリゲートについて質問させてください 例えば、Funcデリゲートですが c#では
public delegate TResult Func<in T, out TResult>( T arg ) という風に定義されています。 ジェネリックで 第1パラメーターがT型、第2パラメーターがTresult型になっています。
つまり、第1パラメーターで受け取った型が処理の引数に 第2パラメーターで受け取った型が処理の戻り値になります。
これは、これでいいのですが Ienumerableインターフェースに追加されている 拡張メソッドににはこのような記述があります。
public static IEnumerable<TSource> Where<TSource>( this IEnumerable<TSource> source, Func<TSource, int, bool> predicate )
Func<Tsource,int,bool>とあります。
Funcデリゲートの型パラメーターは2つまで受け取り可能だと思っていたのですが ここでは3つ型パラメーターを指定しています。
これはどうしてでしょうか? 理由を教えてください。よろしくお願いします。
|