9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
|
||||||
1 | ||||||
Десериализация26.11.2016, 19:15. Показов 582. Ответов 1
Метки нет (Все метки)
Ниженаписанный код программы выводит на экран:
14 16 -2 11 11 Объясните,пожалуйста, от куда взялось значение -2 и как дальше работает программа. А можно помочь просто ссылкой на хорошую статью по этой теме.
0
|
26.11.2016, 19:15 | |
Ответы с готовыми решениями:
1
Json, десериализация Десериализация BindingList<> Десериализация json Десериализация JSON |
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
|
|
27.11.2016, 11:08 | 2 |
Aliaxandr, ох.. боюсь немного напутать, но все же....
Если я все правильно понимаю, то OnDeserializingMethod вызывается ПЕРЕД началом десериализации. Но при этом создается новый объект класса вызовом GetUninitializedObject() в результате выполнения которого выделяется память под объект и все его байты заполняются нулем. И видимо вследствие этого значение поля A на момент вызова OnDeserializingMethod равен нулю. а в методе вы вычитаете получается из нуля 2. Потому и выводится -2. Почему потом выводится 11? В процессе десериализации полю A присваивается значение 14, а после окончания десериализации из него вычитается 3. В итоге получаем 11, которое потом и выводится.
1
|
27.11.2016, 11:08 | |
27.11.2016, 11:08 | |
Помогаю со студенческими работами здесь
2
Десериализация XML Десериализация JSON Десериализация XML JSON десериализация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |