OVH Cloud OVH Cloud

Type et reflection

2 réponses
Avatar
alexandre jenny
Zut, mon message est parti en réponse à un autre et non en sujet tout seul.
---
Quelques petites questions autour de la reflection en C# :

- J'ai un Type stocké qui est un object simple (non array)
Y-a-t-il un moyen simple de créer une instance d'un array de ce type ?

Pour info, il me semble que pour créer une instance du type lui-même,
c'est
quelque chose comme :
Object obj = Activator.CreateInstance( tontype, ... /* constructor stuff
*/ )

- J'ai une fonction qui fait factory, genre
public Object Create() qui créé un object d'un type qui dépend de la
classe dérivée.
Y-a-t-il un moyen élegant de l'écrire pour que le cast ne soit pas utile
dans des fonctions de
classe dérivée ?
( On est toujours obligé de faire : maclassederive ma =
(maclassederive)Base.Create(); )

Alexandre

2 réponses

Avatar
Zoury
Salut Alexandre!

Y-a-t-il un moyen simple de créer une instance d'un array de ce type ?



ceci fonctionne :
object o ((ArrayList)Activator.CreateInstance(typeof(ArrayList))).ToArray(typeof(stri
ng));

mais il y peut-être plus optimale..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic classique
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
Zoury
Alexandre à trouvé une meilleure réponse sur le groupe anglophone.

la voici pour ceux que ça intéresse :
//*
// créer un string[] de 10 éléments
object o = Array.CreateInstance(typeof(string), 10);
//**

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/