Quelle est la différence entre ces signatures de méthode? et p> Ils semblent avoir le même résultat ... Qu'est-ce que où t: classe code> fait? p> p>
4 Réponses :
Dans la deuxième méthode, le T ne peut être qu'une classe et ne peut pas être un type de structure. P>
voir Contraintes sur les paramètres de type (Guide de programmation C #) : < / p>
où T: classe p>
l'argument de type doit être une référence [classe] Type em>; Ceci s'applique également à n'importe quelle classe, interface, déléguée ou tableau. p> blockQuote>
Il n'y a pas de différence, mais T est limité à un type de référence. Ils ne diffèrent qu'à compilétime, car le compilateur vérifie que Wether T est un type REF ou non. P>
Alors alors là est i> une différence ;-) Je me demande s'ils émettent le même IL (par exemple, cette information est-elle conservée?)
Dans la première, vous pouvez l'appeler avec un type non-ref de type par exemple
MyMethod<int>(10);
void code> ou t code>. li>
- et deuxième méthode ne fonctionnera pas pour
myMethod (1) code> car il nécessite un type de référence sur t code> li>
ol>
Ce qui n'est pas clair sur The Docs ?