Peut-être que je ne lis pas correctement la documentation de MSDN, mais étant donné une fonction qui accepte un paramètre de chaîne et renvoie le type T, comment cela peut-il être spécifié comme une fonction partagée en utilisant Func()? MSDN indique Func(Of In T1, Out TResult)
, mais tous leurs exemples utilisent le même type de données, c'est-à-dire Func(Of String, String)
. Je veux faire Func(Of In String, Out T)
, où T est arbitraire (mais je peux le contraindre si nécessaire par une classe de base). Je le veux partagé/statique au niveau de la classe, mais la classe d'encapsulation ne sera pas elle-même une classe générique. Il semble dans ce scénario spécifique, qu'il est impossible de faire ce que je veux parce que le compilateur n'aurait aucun moyen de savoir ce que le type T est à l'exécution.Comment spécifier les types génériques sur les délégués?
Est-il possible de faire des génériques sur les délégués ou des expressions lambda anonymes dans VB.net (pas C#)?
Vous l'avez sous la forme VB.net? En dépit d'être un peu instruit en C, je trouve difficile de lire C# pour une raison étrange. – Kumba
Et oui, je devrais ajouter, encapsulé dans une méthode, je pourrais probablement faire ce que je veux. Je pense à quelque chose de plus similaire à la création d'un dictionnaire des délégués, par cette question ici: http://stackoverflow.com/questions/2550218/how-to-store-a-function-pointer-in-c – Kumba
parce que j'essaie de trouver une meilleure façon d'éviter les grandes instructions 'Select Case ...' quand j'ai besoin de déterminer quel type est un objet à l'exécution. J'ai rencontré des références d'utilisation du polymorphisme pour faire cela au lieu de grands blocs conditionnels. La partie difficile est de trouver un exemple décent de tels. – Kumba