9
votes

Créer de manière dynamique un tableau de type en c #

en C #, je dois être capable de créer une gamme d'objets de type au moment de l'exécution en fonction d'une liste délimitée de virgule de types de données transmis à une fonction de chaîne. Fondamentalement, voici ce que j'essaie d'accomplir: xxx

mais j'ai besoin de pouvoir appeler ma fonction comme ceci: xxx

et devez-le générer le tableau de manière dynamique sur la base de la chaîne passée. Voici ma première tentative: xxx

Ce code crée simplement un tableau d'objets NULLS de type System.Type. Je suis à peu près sûr que le problème réside ici: xxx

suggestions sur la raison pour laquelle cette syntaxe ne fait pas l'affaire?


2 commentaires

Vous trouverez peut-être cet article C # -Aliases utile pour un Switch instruction ou similaire. MSDN.MICROSOFT.COM/EN-US/LIBRARY/ya5Y69DS.aspx


En plus du nom de nom de l'Assemblée, envisagez d'utiliser la version surchargée de type.getType qui ignore le cas.


5 Réponses :


5
votes

passe dans system.string , system.int32 au lieu de chaîne et int . . .

"chaîne" est juste sténographique pour system.string. type.getType n'acceptera pas la notation sténographie pour les types.


0 commentaires

3
votes

Utilisez le nom complet de chaque type, y compris l'espace de noms. Comme: xxx


0 commentaires

5
votes

Le problème est qu'il n'y a pas de uint uint code> et chaîne code> types dans .NET. Ce sont des alias de type C # à la System.Uint32 et System.string Types. Vous devez donc appeler votre fonction comme ceci:

MyFunction("System.UInt32, System.String, System.String, System.UInt32");


0 commentaires

2
votes

Cela ne fonctionne pas car uint , string , etc. ne sont pas les noms officiels des types .NET. Ce sont des alias c # pour system.uint32 , system.string , etc., vous devez utiliser les noms de type .NET si vous souhaitez créer des types de manière dynamique comme celle-ci. .


0 commentaires

0
votes

Je sais que c'est vieux, mais c'est comme ça que je le craignais: xxx


0 commentaires