2014-06-26 2 views
1

Est-il toujours possible de comparer CultureInfo objets récupérés avec CultureInfo.GetCultureInfo en utilisant l'opérateur d'identité (==)? En d'autres termes, est-il garanti que le cache renvoie toujours les mêmes objets, ou est-il possible qu'il puisse supprimer des entrées et les recréer comme de nouveaux objets à un moment ultérieur? Notez que la documentation de overloads n'est pas utile à cet égard, et l'alternative est bien sûr d'utiliser la méthode Object.Equals.Comparaisons d'identité d'objets `CultureInfo` récupérés à l'aide de` CultureInfo.GetCultureInfo`

Répondre

1

No.

Il y a un commentaire dans le source du private helper method pour les surcharges qui se lit ainsi:

// There is a race condition in this code with the side effect that the second thread's value 
// clobbers the first in the dictionary. This is an acceptable ---- since the CultureInfo objects 
// are content equal (but not reference equal). Since we make no guarantees there, this ---- is 
// acceptable. 

drôle qu'ils ont ressenti le besoin de censurer ce qui est très probablement le mot " pirater".