Je veux faire quelque chose comme ce qui suit dans vb.net est possible?
5 Réponses :
oui. Il y a système.type. Vous pouvez réellement vouloir faire un générique cependant.
Function SomeFunction(Of T)(obj As Object) As T '' Magic End Function
Oh Doh. Je suis tellement habitué à c # ces jours-ci.
Cela peut sembler évident, mais que mettons-nous à la place de la magie? Dans mon cas, je veux passer un type d'exception à une fonction, sans initialiser l'exception (qui sera initié à l'intérieur de la fonction). Je ne sais pas à l'avance à quel exceptype mon système.Exception sera exceptionnel.
@Ama ce que vous voulez faire.
Je ne comprends pas quelle est votre fonction: ce qu'elle est censée revenir, et comment puis-je spécifier T. J'ai essayé le sugestion de Fredou qui est à retour obj code>, mais je ne peux même pas utiliser la fonction . Je reçois un "paramètre de type" t 'ne peut pas être déduit. "
@Ama - Voir ma réponse ci-dessous ( Stackoverflow.com/a/63427203/9792594 ), j'espère que cela explique comment appeler un fonction générique?
Vous voulez utiliser le
function task(of myType)(value as myType) as MyType ''stuff return value end function
Oui, cependant, en fonction de vos besoins, vous pouvez utiliser CTYPE pour effectuer n'importe quel type de coulée / conversion. CTYPE fonctionnera tant qu'il existe une conversion de type valide, tandis que DirectCast nécessite que valeur code> soit du type
totype code>. P>
Superbe réponse - Voici une fonction générique pour faire la même chose: appelez-le comme suit: p>
Je devais faire quelque chose de similaire aujourd'hui (remplir essentiellement le '' Magic code> à partir de la réponse acceptée):
Pourquoi ne jetez-vous pas votre objet avant i> l'envoyer à la fonction de tâche?
N'est-ce pas une solution de contournement évidente ?!