Вывести результат работы программы на консоль - C#
Формулировка задачи:
Подскажите как результат вывести на консоль ?
Свойство типа 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[] 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.Paper); // ? 1
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 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));
}
}
}Решение задачи: «Вывести результат работы программы на консоль»
textual
Листинг программы
public Paper Paper // ? 2
{
get
{
return Count == 0 ? null : this.OrderByDescending(p => p.PublishDate).FirstOrDefault();
}
}