Если я заполняю словарь и назначаю его полю, могу ли я гарантировать, что поле не будет содержать наполовину заполненныйC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Если я заполняю словарь и назначаю его полю, могу ли я гарантировать, что поле не будет содержать наполовину заполненный

Сообщение Anonymous »

В приведенном ниже коде я заполняю содержимое словаря затем присваиваю его 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»