Vous avez déclaré que le type de retour est générique.
Essayez ceci:
public Func<IList<T>, T> SelectionMethod<T>() { return list => list.First(); }
Le nom de la chose que vous déclarez doit inclure les paramètres de type pour qu'il soit générique. Le compilateur prend uniquement en charge les classes génériques et les méthodes génériques.
Ainsi, pour une classe générique vous devez avoir
class MyGeneric<T> {
// You can use T here now
public T MyField;
}
Ou, pour les méthodes
public T MyGenericMethod<T>(/* Parameters */) { return T; }
Vous pouvez utiliser T comme paramètre de retour, que si elle a été déclarée au nom de la méthode première .
Même s'il semble que le type de retour est déclaré avant la méthode actuelle, le compilateur ne le lit pas de cette façon.
résolu! http://stackoverflow.com/questions/4338867 – mpen