Vladimirll
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AquaTour Подскажите как результат вывести на консоль ? Свойство типа Paper ( только с методом get), которое возвращает ссылку на публикацию с самой поздней датой выхода; если список публикаций пустой свойство возвращает значение null. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Конструктор_1 { class Program { static void Main(string[] args) { Console.WriteLine(); ResearchTeam team = new ResearchTeam(); ResearchTeam Ssilka = new ResearchTeam(); Paper Ssilka1 = new Paper(); Paper[] papers = new Paper[2]; papers[0] = new Paper("pub_4", new DateTime(1887, 6, 1)); papers[1] = new Paper("pub_5", new DateTime(1889, 8, 21)); team.AddPapers(papers); foreach (Paper paper in team.list) { Console.WriteLine(paper.Publication); Console.WriteLine(paper.Time.ToShortDateString()); } Console.WriteLine(team.ToString()); Console.WriteLine(Ssilka.ToString()); // ? 1 Console.WriteLine(Ssilka1.ToString()); Console.ReadKey(); } } class Paper { public string Publication { get; private set; } // свойство типа string , в котором хранится название публикации public string Author { get; private set; } // свойство типа Person для автора публикации public DateTime PublishDate { get; private set; } //DateTime Data { get; set; } // свойство типа DateTime c датой публикации //конструктор c параметрами типа string, Person, DateTime для инициализации всех свойств класса; public Paper(string pub, string author, DateTime date) { Publication = pub; Author = author; PublishDate = date; } // конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию public Paper() : this("WarandWorld", "Lolstoy", new DateTime(1889, 7, 1)) { } public override string ToString() { return "\nNameP=" + Publication.ToString() + "\nAuthor=" + Author.ToString() + "\nData=" + PublishDate.ToShortDateString(); // "\nlist_publication=" + string.Join(",", Papers.Select(p => p.Publication)); } public Paper(string publication, DateTime time) { Publication = publication; Time = time; } public string publication; public DateTime Time; } //Определить тип TimeFrame перечисление(enum) со значениями Year, TwoYears, Long. enum TimeFrame { Year, TwoYears, Long } class ResearchTeam : List<Paper> { // закрытое поле типа Paper*+, в котором хранится список публикаций private List<Paper> Papers = new List<Paper>() { new Paper("pub_1", new DateTime(1881, 6, 2)), new Paper("pub_2", new DateTime(1883, 6, 2)), new Paper("pub_3", new DateTime(1885, 6, 2)) }; //, // В классе ResearchTeam определить конструкторы : // Конструктор c параметрами типа string, string, int, TimeFrame для инициализации соответствующих полей класса public ResearchTeam(string theme, string org, string regNum) { _theme = theme; _organization = org; _registryNumber = regNum; } //Конструктор без параметров, инициализирующий поля класса значениями по умолчанию public ResearchTeam() : this("Ecology", "Colos", "1924714927") { } //В классе ResearchTeam определить свойства c методами get и set //Cвойство типа string для доступа к полю с названием темы исследова-ний private string _theme; /// <summary> /// Тема исследований /// </summary> public string Theme { get { return _theme; } } //Cвойство типа string для доступа к полю с названием организации private string _organization; /// <summary> /// Название организации /// </summary> public string Organization { get { return _organization; } } //Cвойство типа int для доступа к полю с номером регистрации private string _registryNumber; /// <summary> /// Регистрационный номер организации /// </summary> public string RegistryNumber { get { return _registryNumber; } } //Cвойство типа TimeFrame для доступа к полю с продолжительностью ис-следований private TimeFrame _last; /// <summary> /// Продолжительность исследований /// </summary> public TimeFrame Last { get { return _last; } } /// <summary> /// Cсылкa на публикацию с самой поздней датой выхода. /// <para>Eсли список публикаций пустой — возвращает null</para> /// </summary> public Paper Paper // ? 2 { get { return Count == 0 ? null : this.OrderByDescending(p => p.PublishDate).FirstOrDefault(); } } /// <summary> /// Возвращает true, если продолжительность исследований совпадает с указанной /// </summary> /// <param name="frame">Указанная продолжительность исследований</param> public bool this[TimeFrame frame] { get { return frame == Last; } } //Cвойство типа Paper[] для доступа к полю со списком публикаций по те-ме исследований public List<Paper> list { get { return Papers; } set { Papers = value; } } public void AddPapers(Paper[] papers) { Papers.AddRange(papers); } public override string ToString() { return string.Join(",", Papers.Select(p => p.Publication)); } } } | Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 01:06 27-10-2015 | Исправлено: Vladimirll, 01:19 27-10-2015 |
|