我在FCL中发现了一个奇怪的Stack类实现。 正如我所看到的,Stack类提供了SyncRoot属性,旨在允许外部用户阻止整个集合并以线程安全的方式使用它。但是随着SyncRoot的发现,我在修改操作(Push,Pop,Clear)时发现了一个由Stack类递增的私有字段_version。 StackEnumerator类使用此字段来检查循环集合时是否有任何更改。 但真是太棒了!无处不在Stack类通过一元运算符++递增版本而不使用Interlock类。所以我安静地不明白版本字段的意图是什么?