2016-03-01 3 views
0

Я понимаю, что это вызывает ошибку, но я не понимаю, почему и как обойти ее. Я ищу способ, чтобы избежать необходимости создавать сотни переменныхОшибка сериализации, когда средство публичного доступа присваивает «значение» коллекции

  • is1_BufferUAbsolute
  • is2_BufferUAbsolute
  • ...
  • is75_BufferUAbsolute

, заменив его

initialStopCollection [n] .BufferUAbsolute

Serialization Error

+0

Вы должны обеспечить значение не нуль перед назначением и вы обеспечили, что индекс коллекции инициализирована? то есть. обычно, если у вас никогда не было элемента в пятом слоте коллекции, прежде чем он не позволит вам вставить что-то в пятый слот до его инициализации, т.е. с Collection.Add(), но это зависит от типа коллекции. С какой коллекцией вы сталкиваетесь и какие типы ценностей вы пытаетесь присвоить ей? Можете ли вы предоставить дополнительную информацию? – MikeDub

ответ

0

Ваш код должен быть изменен на:

set 
{ 
    int itemIndex = 1; 
    if (initialStopCollection == null) initialStopCollection = new ...; // your initialStopCollection is null. Create new one 
    if (itemIndex >= initialStopCollection.Count) // Two few items, create new 
    { 
     for (int i = initialStopCollection.Count; i <= itemIndex; i++) 
     { 
      initialStopCollection.Add(new ...); 
     } 
    } 
    if (initialStopCollection[itemIndex] == null) initialStopCollection[itemIndex] = new ... ; // This item is not initialized, create new 
    initialStopCollection[itemIndex].BufferUAbsolute = value; 
} 
+0

Большое спасибо – user2680792