Исключение гарантирует [дубликат]

Как и @Maximiliangerhardt, MiniJson не имеет возможности десериализоваться должным образом. Я использовал JsonFx и работал как шарм. Работает с []

player[] p = JsonReader.Deserialize<player[]>(serviceData);
Debug.Log(p[0].playerId +" "+ p[0].playerLoc+"--"+ p[1].playerId + " " + p[1].playerLoc+"--"+ p[2].playerId + " " + p[2].playerLoc);
8
задан ron 27 August 2012 в 08:10
поделиться

2 ответа

  1. Базовая гарантия: после того, как было выбрано исключение, объекты остаются в последовательном, пригодном для использования состоянии. Ресурсы не протекают, а инварианты сохраняются. Состояние объекта могло измениться, но оно все еще пригодно для использования. Например, объект даты, значение day которого стал -1, больше не используется, поскольку его инварианты говорят, что day находится в диапазоне [1, 31].
  2. Сильная гарантия (дополнительно к 1 ): объект даты имеет значение 2012-12-31. После того, как операция, которая пытается изменить это значение, потерпела неудачу, значение этого объекта все еще остается в 2012-12-31. Возможно, какое-то внутреннее состояние изменилось, но логическое состояние с клиентской точки зрения не изменилось.
8
ответ дан Matteo Italia 20 August 2018 в 14:49
поделиться

В вашем случае нет гарантии исключения. (Это в основном случай 0). Статья в Википедии, которую вы цитируете, понятна: «Правила применяются к реализациям классов». Кроме того, после того, как вы выбрали, переменная j выходит за пределы области действия и больше не существует. Вы даже не можете больше говорить о своем адресе, не говоря уже о значении

. Обычно инварианты класса определяются автором класса, поэтому он означает все, что имеет в виду автор класса. Я не понимаю вашу точку 1. NULL является допустимым значением для указателя.

Ваша вторая точка хорошая. Определение не является абсолютным. Например, операция над строковым элементом данных может увеличить его емкость. Вы можете наблюдать это снаружи через const&. Тем не менее, эта пропускная способность обычно не рассматривается как часть значения строки и, следовательно, не является частью инварианта класса.

3
ответ дан MSalters 20 August 2018 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: