Subject area of the learning task: space
-
Development of a class system within the OOP architecture: encapsulation, inheritance, polymorphism
-
Introducing your own generalized collection into the project
-
Working with delegates: the ability to sort and compare elements. The conditions for comparing elements are set from a source external to the collection class. Using the Action and Func Classes
-
Working with events: creating a class for logging the main stages of the program. Used a separate class for logging with generic methods. The class supports two output sources: console and file. The direct log printing method is in the external source (class). In the class itself, only the event is described.
-
Exception handling: development of an exception class for the project that logs emergency situations: the presence of a configuration file, throwing exceptions in cases of errors when reading / writing files and other errors during program execution. Separated handling of standard and custom exceptions.
-
Working with threads: sorting of the user collection is handled by a separate thread. Sorting logging has been removed (messages about the start of sorting, about sorting, how many items were processed (service information)) into a separate thread. Interaction of two streams is provided.
-
Serialization: a set of classes has been developed for serializing and deserializing a custom collection into various data formats.