static void Main(string[] args) { try { //create a star Star star = new Star("Sun", 334.45567F, 345.5F, 456.2F, 2354436456.234435F, "Star", "He", 34546456.24F); //planet AstronomicalBody astBody = new AstronomicalBody("Kepler", 345.45F, 23.5F, 321.5F, 2.5900000000000000F); //asteroids AstronomicalBody ceres = new AstronomicalBody("Ceres", 3345.4F, 789.4F, 347.83F, 7.3600000000000000F); AstronomicalBody fortuna = new AstronomicalBody("Fortuna", 795.67F, 41.3F, 78.4F, 9.3400000000000000F); Console.WriteLine("Start of the test: {0}", GC.GetTotalMemory(true)); //create new system PlanetarySystem <AstronomicalBody> system = new PlanetarySystem <AstronomicalBody>(star); del Add = x => system.Add(x); //system forming Add(astBody); Add(ceres); Add(fortuna); Console.WriteLine("Сreating an object: {0}", GC.GetTotalMemory(true)); GC.Collect(); GC.WaitForPendingFinalizers(); WeakReference wr = WR(); Console.WriteLine("Is first object alive : " + wr.IsAlive.ToString()); GC.Collect(2, GCCollectionMode.Forced); Console.WriteLine("Is first object alive : " + wr.IsAlive.ToString()); system.Dispose(); Console.WriteLine("System does not exist: " + (system.astBodies == null));// Ccилка на список null Console.WriteLine(system.ToString()); Console.ReadKey(); } catch (InvalidAstBodyNameException e) { Console.WriteLine("Custom exception " + e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } }