在文件中:https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Utilities/ThreadSafeStore.cs#L70
为什么要检查字段" _store"等于空
存在空检查,因为名为 _store
的字典可能尚未初始化。在类的构造函数中,_store
被初始化,这将使 null 检查无关紧要,因为它将始终被初始化。
通过查看文件的历史记录,似乎_store
并不总是在构造函数中初始化(这是在 2012 年的某个时候添加的)。在这种情况下,需要 null 检查,因为如果您尝试将条目添加到未初始化的字典中,则会发生异常。
这给出了一个提示,即 null 检查很可能是未在构造函数中初始化时的工件。在不查看整个项目的情况下,我的猜测是 null 检查可能会被删除,而不会引起任何问题。