На этом уроке мы научимся сохранять и загружать объекты, используя технологию сериализации и десериализации.
Дата отправки отчёта:
14 февраля 2018 г.
Задание выполнено: за
1 час. 0 мин.
Чему научился:
Добавил проверку наличия папки sprites в корне программы, если её нет, создавать. Добавил расширение по умолчанию для создаваемых файлов (xml). Добавил фильтр отображаемых файлов в папке (*.xml). Нарисовал корабль, луну и землю и сохранил в отдельные файлы. Всё отлично, идём дальше.
А я запоминаю, что где проходили, чтобы значит, где посмотреть ту или иную фишку, когда надо будет напомнить, как ты это реализовывал, особенно если реализовывал самостоятельно по своему.
Отчёт оценивали: 10558. Иван Воронин+1459. Сергей Сергеевич+16452. Кирилл Шмойлов+116533. Андрей Шевченко+11. Евгений Волосатов+110494. Алексей В.+116218. Дмитрий+14395. Денис+19980. Timoha+17119. Новопашин Владимир+114981. DimanDOS+16203. Николай Миролюбов+18275. Tekashnik+13922. Александр+18877. gorynych+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: 1) How to serialize and deserialize objects, в данном уроке в файл формата xml.
2) Познакомился компонентами SaveFileDialog, OpenFileDialog. Трудности: Сложностей не было. Интересная тема)
Научился: Сохранять в XML файл и загружать из него с помощью XML сериализации. Трудности: У меня при загрузке возникла проблема, не отображался спрайт, ошибка оказалась в обработчике события при клике мышкой, т.к. я делал по-своему, при клике мышки у меня рисовалась ломаная линия, а при двойном щелчке линия перестает рисоваться. Проблема была в том, что в координаты x1,x2 и y1,y1 сохранялись одинаковые значения, ошибку исправил таким образом:
private void picture_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (curLine.x1 == -1)
{
curLine.x1 = e.X;
curLine.y1 = e.Y;
}
else
{
curLine.x2 = e.X;
curLine.y2 = e.Y;
sprite.AddLine(curLine);
curLine.x1 = curLine.x2;
curLine.y1 = curLine.y2;
}
return;
}
} Немного покороче написал метод Save()
public void Save(string filename)
{
try
{
XmlSerializer xml = new XmlSerializer(typeof(Sprite));
XmlWriter writer = XmlWriter.Create(filename);
xml.Serialize(writer, this);
}
catch { }
}
Еще вы забыли добавить блок Try,Catch.
Спасибо за урок!