//визначити перезавантажену версію виртуального методу object DeepCopy(). public override object DeepCopy() { Magazine other = (Magazine)MemberwiseClone(); other.PersonsList = new List <Person>(); other.ArticleList = new List <Article>(); foreach (Person person in PersonsList) { other.PersonsList.Add((Person)person.DeepCopy()); } foreach (Article article in ArticleList) { other.ArticleList.Add((Article)article.DeepCopy()); } return(other); }
/*public MagazineCollection() : this(new List<Magazine>()) * { * } * * public MagazineCollection(List<Magazine> _magazines) * { * Magazines = _magazines; * }*/ //метод void AddDefaults(), за допомогою якого в список List<Magazine> можна додати //деяке число елементів типу Magazine для ініціалізації колекції за замовчуванням public void AddDefaults() { Magazines = new List <Magazine>(); Magazine fullMagazine = new Magazine(new Edition("name33", DateTime.Now, 123), "name1", Frequency.Montly, DateTime.Now, 10, new List <Person> { new Person(), new Person() }, new List <Article> { new Article(new Person(), "1", 50), new Article(new Person(), "2", 80) }); Magazines.Add(fullMagazine); Magazines.Add(new Magazine()); Magazines.Add(fullMagazine); }
//конструктор з параметром типу int (число елементів в колекціях) для автоматичного створення колекцій з заданим числом елементів public TestCollections(int count) { Editions = new List <Edition>(); Text = new List <string>(); EdMagDictionary = new Dictionary <Edition, Magazine>(); StMagDictionary = new Dictionary <string, Magazine>(); for (int i = 0; i < count; i++) { Magazine magazine = GetMegazine(i); Edition edition = magazine.Edition; Editions.Add(edition); Text.Add(edition.ToString()); EdMagDictionary.Add(edition, magazine); StMagDictionary.Add(edition.ToString(), magazine); } }
//статичний метод з цілочисельним параметром типу int, який повертає посилання на об'єкт типу Magazine та використовується для автоматичної //генерації елементів колекції public static Magazine GetMegazine(int index) { Magazine magazine = new Magazine( new Edition("editionName " + index, DateTime.Today.AddDays(index), index), "magazineName " + index, Frequency.Montly, DateTime.Today.AddDays(index + 1), index, new List <Person> { new Person("personName " + index + 1, "personLast " + index + 1, DateTime.Today.AddDays(index + 2)), new Person("personName " + index + 2, "personLast " + index + 2, DateTime.Today.AddDays(index + 3)), new Person("personName " + index + 3, "personLast " + index + 3, DateTime.Today.AddDays(index + 4)) }, new List <Article> { new Article(new Person("personName " + index + 1, "personLast " + index + 1, DateTime.Today.AddDays(index + 5)), "articleName " + index, index), new Article(new Person("personName " + index + 2, "personLast " + index + 2, DateTime.Today.AddDays(index + 6)), "articleName " + index + 2, index), new Article(new Person("personName " + index + 3, "personLast " + index + 3, DateTime.Today.AddDays(index + 7)), "articleName " + index + 3, index) }); return(magazine); }
protected bool Equals(Magazine other) { return(string.Equals(_nameTitle, other._nameTitle) && _Period == other._Period && _DateEdition.Equals(other._DateEdition) && _Edit == other._Edit && _articleList.SequenceEqual(other._articleList) && _personsList.SequenceEqual(other._personsList)); }