Je travaille dans un service Web C# avec une classe statique générique qui prend un type. Je me demandais pourquoi cela ne compile pas:affecter un type à une variable, utiliser une variable avec une classe statique générique
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<type1>._pool.Count);
Il donne cette erreur:
The type or namespace name 'type1' could not be found (are you missing a using directive or an assembly reference?)
Et ReSharper, quand je passe la souris sur type1
dans cette deuxième ligne de code, dit « nom de type ou espace de noms prévu ". Eh bien, type1
est un type! C'est une variable de type Type
! Elle ne fonctionne pas si je fais:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<typeof(type1)>._pool.Count);
J'espérais céder mes types à un couple de différentes variables Type
et il suffit d'utiliser les tests dans les différentes classes statiques génériques, au lieu de taper chaque fois MySnazzyType
. Toutes les idées, ou suis-je coincé avec faire:
Assert.AreEqual(0, ConnectionPool_Accessor<MySnazzyType>._pool.Count);
Edit: pour clarifier les choses, MySnazzyType
est pas une classe générique, ni hériter d'une classe générique. La seule classe générique ici est ConnectionPool_Accessor
.
Grâce au commentaire de Pavel "Essentiellement, votre problème est que C# est un langage typé statiquement", je sais maintenant que Ruby m'a gâté. ;)
s/m'a gâté/m'a appris de mauvaises manières/;-) – Thorarin