En C# J'essaie d'écrire du code où je créerais un délégué Func qui est en soi générique. Par exemple, le suivant délégué (non générique) retourne une chaîne arbitraire:C# génériques génériques (une question sérieuse)
Func<string> getString =() => "Hello!";
I d'autre part vouloir créer un générique qui agit de manière similaire aux méthodes génériques. Par exemple, si je veux un Func générique pour revenir par défaut (T) pour un T. type I imagine que j'écrire du code comme suit:
Func<T><T> getDefaultObject = <T>() => default(T);
alors je l'utiliser comme
getDefaultObject<string>()
qui renverrait null et si je devais écrire getDefaultObject<int>()
retournerait 0.
Cette question est non seulement un excercise académique. J'ai trouvé de nombreux endroits où j'aurais pu utiliser ceci mais je ne peux pas obtenir la syntaxe correcte. Est-ce possible? Y a-t-il des bibliothèques qui fournissent ce genre de fonctionnalité?
Y at-il une raison pour laquelle 'Func CreateGetDefaultObject () {return() => par défaut (T); } 'ne fonctionnera pas? –
Je vois maintenant. Vous souhaitez passer un argument de type compilation à un délégué. –