使用' CultureInfo. getcultureinfo '检索' CultureInfo '对象的身份比较

本文关键字:CultureInfo 身份 比较 getcultureinfo 使用 检索 对象 | 更新日期: 2023-09-27 18:10:21

使用身份操作符(==)比较CultureInfo对象与CultureInfo.GetCultureInfo是否总是安全的?

换句话说,缓存是否保证总是返回相同的对象,或者它是否可能删除条目并在稍后将其重新创建为新对象?

请注意,关于重载的文档在这方面没有帮助,替代方法当然是使用Object.Equals方法。

使用' CultureInfo. getcultureinfo '检索' CultureInfo '对象的身份比较

No.

在重载的私有助手方法的源代码中有一条注释:

// 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.

有趣的是,他们觉得有必要审查最有可能是"hack"这个词