static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; List <Person> myList = new List <Person>(); Person teach = new Teacher("Денисов", "Денис"); for (int i = 0; i < 3; i++) { ((Teacher)teach).Students.Add(Student.GetRandomStudent()); } int[] counter = new int[4]; int[] cCounter = new int[4]; myList.Add((Teacher)teach); myList.Add(Student.GetRandomStudent()); var t = Teacher.GetRandomTeacher(); t.Students.Add(new Student("Корешкова", "Виолетта", 5)); myList.Add(t); myList.Add(new StudentWithAdvisor("Колодцева", "Марина", new Teacher("Степанов", "Степан"))); myList.Add(new StudentWithAdvisor("Корешкова", "Виолетта", Teacher.GetRandomTeacher())); //foreach(var person in myList) //{ // if (person is Person) counter[0]++; // if (person is Teacher) counter[1]++; // if (person is Student) counter[2]++; // if (person is StudentWithAdvisor) counter[3]++; // if (person.GetType() == typeof(Person)) cCounter[0]++; // if (person.GetType() == typeof(Teacher)) cCounter[1]++; // if (person.GetType() == typeof(Student)) cCounter[2]++; // if (person.GetType() == typeof(StudentWithAdvisor)) cCounter[3]++; // var p = (person as Student); // if (p != null) { p.Year++; } // person.Print(); // person.PrintInheritance(); // Console.WriteLine("\n\n"); //} //Console.WriteLine( // $"Количество объектов типа Person (используя is) {counter[0]} (используя typeof) {cCounter[0]}"); //Console.WriteLine( // $"Количество объектов типа Teacher (используя is) {counter[1]} (используя typeof) {cCounter[1]}"); //Console.WriteLine( // $"Количество объектов типа Student (используя is) {counter[2]} (используя typeof) {cCounter[2]}"); //Console.WriteLine( // $"Количество объектов типа StudentWithAdvisor (используя is) {counter[3]} (используя typeof) {cCounter[3]}"); //((Student)myList[3]).Year++; //var students = new List<Student>(); //var students = new PersonCollection(); var students = new List <Student>(); students.Add(new Student("Милонова", "Анна", 2)); students.Add(new Student("Антонов", "Денис", 4)); students.Add(new Student("Яценко", "Алексей", 5)); students.Add(new Student("Васильев", "Олег", 3)); #region BinarySerialization #region forStudent //Stream stream = File.Open("Student.dat", FileMode.Create); //BinaryFormatter bf = new BinaryFormatter(); //bf.Serialize(stream,students[0]); //stream.Close(); //students[0] = null; //stream = File.Open("Student.dat", FileMode.Open); //bf = new BinaryFormatter(); //students[0] = (Student) bf.Deserialize(stream); //stream.Close(); #endregion #region forTeacher //Stream stream = File.Open("Teacher.dat", FileMode.Create); //var bf = new BinaryFormatter(); //bf.Serialize(stream, (Teacher)myList[2]); //stream.Close(); //myList[2] = null; //stream = File.Open("Teacher.dat", FileMode.Open); //bf = new BinaryFormatter(); //myList[2] = (Teacher)bf.Deserialize(stream); //myList[2].Print(); //stream.Close(); #endregion #endregion #region XmlSerialization //XmlSerializer xmlSerializer = new XmlSerializer(typeof(Student)); //students[0].Year++; //using (TextWriter textWriter = new StreamWriter("Student.xml")) //{ // xmlSerializer.Serialize(textWriter, students[0]); //} //XmlSerializer deserializer = new XmlSerializer(typeof(Student)); //students[0] = null; //var textReader = new StreamReader("Student.xml"); //students[0] = (Student)deserializer.Deserialize(textReader); //textReader.Close(); //students[0].Print(); //using (Stream fs = new FileStream("Students.xml", FileMode.Create)) //{ // var xmlSer = new XmlSerializer(typeof(List<Student>)); // xmlSer.Serialize(fs, students); //} #endregion //Array.Sort<Student>(students.ToArray<Student>()); //students.Sort(); //students.Sort(new Student.StudentComparer("Year")); //students.Sort(new Student.StudentComparer("Name")); //students.Sort(new Student.StudentComparer("Surname")); //foreach (var person in students) //{ // using (person) // { // Method(person); // } //} //Console.Out.WriteLine(MinIndex(students.ToArray())); //students.RemoveRange(0,students.Count); //Console.Out.WriteLine("\n" + MinIndex(students.ToArray())); //Console.WriteLine(((Student)myList[4]).CompareTo((Student)myList[3])); #region serializationLinkedList //var linkedList = new Node(5,new Node(4,new Node(3,new Node(2,new Node(1))))); //Method(linkedList); //var soapFormatter = new SoapFormatter(); //using (FileStream fs = new FileStream("LinkedList.xml", FileMode.OpenOrCreate)) //{ // soapFormatter.Serialize(fs,linkedList); //} //linkedList = null; //var soapFormatter2 = new SoapFormatter(); //var fsReader = new FileStream("LinkedList.xml",FileMode.Open); //linkedList = (Node) soapFormatter2.Deserialize(fsReader); //Method(linkedList); //fsReader.Close(); #endregion #region DataContractSerialize ////Serializing //FileStream writer = new FileStream("StudentDC.xml", FileMode.Create); //DataContractSerializer ser = // new DataContractSerializer(typeof(Student)); //ser.WriteObject(writer, students[3]); //writer.Close(); ////Deserializing //FileStream fs = new FileStream("StudentDC.xml", // FileMode.Open); //XmlDictionaryReader reader = // XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas()); //DataContractSerializer ser2 = new DataContractSerializer(typeof(Student)); //Student studentFromDataContract = // (Student)ser2.ReadObject(reader, true); //reader.Close(); //fs.Close(); //Method(studentFromDataContract); #endregion Console.ReadLine(); }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; List <Person> myList = new List <Person>(); Person teach = new Teacher("Денисов", "Денис"); for (int i = 0; i < 3; i++) { ((Teacher)teach).Students.Add(Student.GetRandomStudent()); } int[] counter = new int[4]; int[] cCounter = new int[4]; myList.Add((Teacher)teach); myList.Add(Student.GetRandomStudent()); var t = Teacher.GetRandomTeacher(); t.Students.Add(new Student("Корешкова", "Виолетта")); myList.Add(t); myList.Add(new StudentWithAdvisor("Колодцева", "Марина", new Teacher("Степанов", "Степан"))); myList.Add(new StudentWithAdvisor("Корешкова", "Виолетта", Teacher.GetRandomTeacher())); //foreach(var person in myList) //{ // if (person is Person) counter[0]++; // if (person is Teacher) counter[1]++; // if (person is Student) counter[2]++; // if (person is StudentWithAdvisor) counter[3]++; // if (person.GetType() == typeof(Person)) cCounter[0]++; // if (person.GetType() == typeof(Teacher)) cCounter[1]++; // if (person.GetType() == typeof(Student)) cCounter[2]++; // if (person.GetType() == typeof(StudentWithAdvisor)) cCounter[3]++; // var p = (person as Student); // if (p != null) { p.Year++; } // person.Print(); // person.PrintInheritance(); // Console.WriteLine("\n\n"); //} //Console.WriteLine( // $"Количество объектов типа Person (используя is) {counter[0]} (используя typeof) {cCounter[0]}"); //Console.WriteLine( // $"Количество объектов типа Teacher (используя is) {counter[1]} (используя typeof) {cCounter[1]}"); //Console.WriteLine( // $"Количество объектов типа Student (используя is) {counter[2]} (используя typeof) {cCounter[2]}"); //Console.WriteLine( // $"Количество объектов типа StudentWithAdvisor (используя is) {counter[3]} (используя typeof) {cCounter[3]}"); //((Student)myList[3]).Year++; //var students = new List<Student>(); var students = new PersonCollection(); students.Add(new Student("Милонова", "Анна", 2)); students.Add(new Student("Антонов", "Денис", 4)); students.Add(new Student("Яценко", "Алексей", 1)); students.Add(new Student("Васильев", "Олег", 3)); //Array.Sort<Student>(students.ToArray<Student>()); //students.Sort(); //students.Sort(new Student.StudentComparer("Year")); //students.Sort(new Student.StudentComparer("Name")); //students.Sort(new Student.StudentComparer("Surname")); foreach (var person in students) { using (person) { Method(person); } } //Console.WriteLine(((Student)myList[4]).CompareTo((Student)myList[3])); Console.ReadLine(); }