Что делает этот код? - C# (191372)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Объясните, пожалуйста, как работает этот код? Если можно, прокомментируйте, пожалуйста, каждую функцию. Заранее, спасибо огромное.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Serialization;
  6. using System.IO;
  7. namespace ConsoleApplication28
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. List<Student> list = new List<Student>()
  14. {
  15. new Student(){FirstName="Alex",SecondName="Simpson",Group=10},
  16. new Student(){FirstName="Will",SecondName="Smith",Group=25}
  17. };
  18. //Сериализуем
  19. SerializeList(list);
  20. Console.WriteLine("Operation completed!");
  21. Console.WriteLine("Deserialized from file: ");
  22. //Десериализуем
  23. List<Student> ListFromFile = GetStudents();
  24. //Выводим на консоль
  25. foreach (Student s in ListFromFile)
  26. {
  27. Console.WriteLine("First name: {0}, Second name: {1}, Grop: {2}",
  28. s.FirstName, s.SecondName, s.Group);
  29. }
  30. Console.ReadLine();
  31. }
  32. static void SerializeList(List<Student> list)
  33. {
  34. XmlSerializer xmlSerial = new XmlSerializer(typeof(List<Student>));
  35. using (Stream fs = new FileStream(@"C:\MyStudents.xml", FileMode.Create,
  36. FileAccess.Write, FileShare.None))
  37. {
  38. xmlSerial.Serialize(fs, list);
  39. }
  40. }
  41. static List<Student> GetStudents()
  42. {
  43. List<Student> tempList;
  44. XmlSerializer xmlSerial = new XmlSerializer(typeof(List<Student>));
  45. using (Stream fs = new FileStream(@"C:\MyStudents.xml", FileMode.Open,
  46. FileAccess.Read, FileShare.None))
  47. {
  48. tempList = (List<Student>)xmlSerial.Deserialize(fs);
  49. }
  50. return tempList;
  51. }
  52. }
  53. [Serializable]
  54. public class Student
  55. {
  56. public string FirstName { get; set; }
  57. public string SecondName { get; set; }
  58. public int Group { get; set; }
  59. }
  60. }

Решение задачи: «Что делает этот код?»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Serialization;
  6. using System.IO;
  7.  
  8. namespace ConsoleApplication28
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. List<Student> list = new List<Student>() // список из экземпляров класса Студент
  15. {
  16. new Student(){FirstName="Alex",SecondName="Simpson",Group=10}, //добавляем 2 экземпляра в список
  17. new Student(){FirstName="Will",SecondName="Smith",Group=25}
  18. };
  19.  
  20. //Сериализуем
  21. SerializeList(list);
  22. Console.WriteLine("Operation completed!");
  23. Console.WriteLine("Deserialized from file: ");
  24.  
  25. //Десериализуем
  26. List<Student> ListFromFile = GetStudents();
  27.  
  28. //Выводим на консоль
  29. foreach (Student s in ListFromFile)
  30. {
  31. Console.WriteLine("First name: {0}, Second name: {1}, Grop: {2}",
  32. s.FirstName, s.SecondName, s.Group);
  33. }
  34. Console.ReadLine();
  35. }
  36. static void SerializeList(List<Student> list)
  37. {
  38. XmlSerializer xmlSerial = new XmlSerializer(typeof(List<Student>)); // создаем ХМЛ сериалайзер, который в своем конструкторе принимает экземпляр класса Type, который мы получаем используя оператор typeof
  39. using (Stream fs = new FileStream(@"C:\MyStudents.xml", FileMode.Create,
  40. FileAccess.Write, FileShare.None))
  41. {
  42. xmlSerial.Serialize(fs, list);// сериализация списка класса Студент
  43. }
  44. }
  45. // тоже, что и выше, только мы восстанавливаем из файла хмл список студентов( производим десериализацию)
  46. static List<Student> GetStudents()
  47. {
  48. List<Student> tempList;
  49. XmlSerializer xmlSerial = new XmlSerializer(typeof(List<Student>));
  50. using (Stream fs = new FileStream(@"C:\MyStudents.xml", FileMode.Open,
  51. FileAccess.Read, FileShare.None))
  52. {
  53. tempList = (List<Student>)xmlSerial.Deserialize(fs);
  54. }
  55. return tempList;
  56. }
  57. }
  58. [Serializable] // это можно не писать
  59. public class Student
  60. {
  61. public string FirstName { get; set; }
  62. public string SecondName { get; set; }
  63. public int Group { get; set; }
  64. }
  65. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут