Переменная _version в библиотченом классе ArrayList

196
24 марта 2018, 13:41

Изучаю библиотечный класс ArrayList и не могу понять какую функцию несет переменная private int _version; ? Строка 48:

https://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs,48

public class ArrayList : IList, ICloneable
{
    private Object[] _items;
    [ContractPublicPropertyName("Count")]
    private int _size;
    private int _version;
    [NonSerialized]
    private Object _syncRoot;
    private const int _defaultCapacity = 4;
    private static readonly Object[] emptyArray = EmptyArray<Object>.Value; 
    // Note: this constructor is a bogus constructor that does nothing
    // and is for use only with SyncArrayList.
    internal ArrayList( bool trash )
    {
    }
    // Constructs a ArrayList. The list is initially empty and has a capacity
    // of zero. Upon adding the first element to the list the capacity is
    // increased to _defaultCapacity, and then increased in multiples of two as required.
    public ArrayList() {
        _items = emptyArray;  
    }
Answer 1

Переменная _version служит для отслеживания модификации списка. Перечислитель списка отслеживает изменение версии и выбрасывает исключение, если список был изменён во время перечисления:

// Implements an enumerator for a ArrayList. The enumerator uses the
// internal version number of the list to ensure that no modifications are
// made to the list while an enumeration is in progress.
READ ALSO
Переход со страницы на страницу в WPF

Переход со страницы на страницу в WPF

Этот вопрос является логическим продолжеием этого вопросаЯ попытался реализовать схему, изложенную здесь , но программа не работает

217
Разница в применении атрибутов [InverseProperty] и [ForeignKey]

Разница в применении атрибутов [InverseProperty] и [ForeignKey]

Обьясните, пожалуйста, максимально простыми словами, в чем же разница между [InverseProperty] и [ForeignKey], ведь оба атрибута устанавливают однозначную...

156
Как считать данные из адресной строки браузера на с#?

Как считать данные из адресной строки браузера на с#?

Всем приветСтоит задача получить название вводимого адреса сайта в адресную строку браузера

187
EPPlus портит даты

EPPlus портит даты

В общем, читаю Excel, где есть колонки с датой

179