Interlocked.Exchange ne peut pas être utilisé avec des génériques?
-
05-07-2019 - |
Question
J'écris une classe générique sur laquelle j'ai besoin d'utiliser Interlocked.
T test1, test2;
Interlocked.Exchange<T>(ref test1, test2);
Ceci ne compilera pas. Suis-je obligé d’utiliser Exchange (Object, Object) même si le conseil MSDN ne l’utilise pas de cette façon?
La solution
Cela fonctionnera, à condition que votre classe générique ait les mêmes contraintes que Interlocked.Exchange<T>
, à savoir, where T: class
.
À partir de la documentation pour Interlocked.Exchange :
Cette méthode ne prend en charge que les types de référence
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow