В приведенном ниже коде я заполняю содержимое словаря затем присваиваю его Data. Таким образом, я предполагаю, что Data будет содержать либо null, либо словарь с двумя элементами в нем.
Но является ли это обоснованным ожиданием?
Я знаю, что записи могут переупорядочиваться. И простым решением, по-видимому, было бы добавление изменчивости в 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
Если я заполняю словарь и назначаю его полю, могу ли я гарантировать, что поле не будет содержать наполовину заполненный ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение