В классе ResearchTeam определить свойство типа Paper - C#
Формулировка задачи:
Здравствуйте ! Подскажите пожалуйста , как в данной программе реализовать пункт 1) : чтобы код был достаточно наглядным и простым ( у меня небольшой практический опыт в программировании ) ?
После пункта 1) мне надо будет написать код к пункту 2) и потом код к пункту 3)
В общем вопрос в том по какому плану выстраивать свои действия ?
В классе ResearchTeam определить :
1) свойство типа Paper ( только с методом get), которое возвращает ссылку на публикацию с самой поздней датой выхода; если список публикаций пустой, свойство возвращает значение null;
2) индексатор булевского типа (только с методом get) с одним параметром типа TimeFrame; значение индексатора равно true, если значение поля с информацией о продолжительности исследований совпадает со значением индекса, и false в противном случае;
В методе Main() :
3) Сравнить время выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов типа Paper.
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();
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.ReadKey();
}
}
class Paper
{
string NameP { get; set; } // свойство типа string , в котором хранится название публикации
string Author { get; set; } // свойство типа Person для автора публикации
DateTime Data { get; set; } // свойство типа DateTime c датой публикации
//конструктор c параметрами типа string, Person, DateTime для инициализации всех свойств класса;
public Paper(string name, string author, DateTime data)
{
NameP = name;
Author = author;
Data = data;
}
// конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию
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
{
private string Theme; // закрытое поле типа string c названием темы исследований
private string NameOfOrg; // закрытое поле типа string с названием организации
private int NumberOfRed; // закрытое поле типа int - регистрационный номер
private TimeFrame Last; // закрытое поле типа TimeFrame для информации о продолжительности ис-следований
// закрытое поле типа 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 nameoforg, int numberofred)
{
Theme = theme;
NameOfOrg = nameoforg;
NumberOfRed = numberofred;
}
//Конструктор без параметров, инициализирующий поля класса значениями по умолчанию
public ResearchTeam() : this("Ecology", "Colos", 1924714927) { }
//В классе ResearchTeam определить свойства c методами get и set
//Cвойство типа string для доступа к полю с названием темы исследова-ний
public string theme
{
get
{
return Theme;
}
}
//Cвойство типа string для доступа к полю с названием организации
public string nameoforg
{
get
{
return NameOfOrg;
}
}
//Cвойство типа int для доступа к полю с номером регистрации
public int numberofred
{
get
{
return NumberOfRed;
}
}
//Cвойство типа TimeFrame для доступа к полю с продолжительностью ис-следований
public TimeFrame last
{
get
{
return 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));
}
}
}Решение задачи: «В классе ResearchTeam определить свойство типа Paper»
textual
Листинг программы
namespace Конструктор_1 {
enum TimeFrame {
OneYear, TwoYear, Long
}
}