OVH Cloud OVH Cloud

Generic + Nullable + Reflection

1 réponse
Avatar
fduhem
Bonjour =E0 tous,

probl=E8matique:
j'ai besoin de cr=E9e une instance d'un type g=E9n=E9rique (Nullable<T>)
au runtime

1/
code s'implifier: (dans mon cas, la d=E9duction de "typeof(int)" ce fait
au runtime...)

Type nullableType =3D typeof(Nullable<>).MakeGenericType( new Type[] {
typeof(int) } );
Console.WriteLine( typeof(int?) =3D=3D nullableType ); // me retourne True


2/
par contre impossible d'instancier ce type
Activator.CreateInstance( nullableType ); // me retourne toujour un
"pointer" null


3/
j'ai fait des tests avec la cr=E9ation d'autre type generic (List<T> par
exemple) pas de probl=E8me, mais avec Nullable<T> pas moyen.


Cordialement,=20
Fabrizio

1 réponse

Avatar
Lloyd Dupont
au lieu de creer un Nullable<T> cree plutot un T
et affecte le a ton nullable

"fduhem" wrote in message
news:
Bonjour à tous,

problèmatique:
j'ai besoin de crée une instance d'un type générique (Nullable<T>)
au runtime

1/
code s'implifier: (dans mon cas, la déduction de "typeof(int)" ce fait
au runtime...)

Type nullableType = typeof(Nullable<>).MakeGenericType( new Type[] {
typeof(int) } );
Console.WriteLine( typeof(int?) == nullableType ); // me retourne True


2/
par contre impossible d'instancier ce type
Activator.CreateInstance( nullableType ); // me retourne toujour un
"pointer" null


3/
j'ai fait des tests avec la création d'autre type generic (List<T> par
exemple) pas de problème, mais avec Nullable<T> pas moyen.


Cordialement,
Fabrizio