Но является ли это обоснованным ожиданием?
Я знаю, что записи могут переупорядочиваться. И простым решением, по-видимому, было бы добавление изменчивости в Data. Но нужно ли это? Или исходный код гарантированно «безопасен» (безопасен в том смысле, что я могу быть на 100% уверен, что Data никогда не будет содержать словарь, содержащий < 2 элемента).
Код: Выделить всё
using System;
using System.Collections.Generic;
public class Program
{
public static Dictionary Data = null;
public static void Main()
{
var bob = new Dictionary();
bob.Add(1, 1);
bob.Add(2, 2);
Data = bob;
// Note that there be no further mutation of `bob` or `Data` after this.
// Imagine there is a separate thread reading the contents of `Data`
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -the-field