Метод класса возвращающий ссылку на объект - C#
Формулировка задачи:
нужно сделать Свойство типа Paper ссылка на публикацию с самой поздней датой выхода, если список пуст то null
В таком варианте пишет невозможно использовать в данном контексте. Как реализовать такое свойство?
class Paper
{
// открытое свойство название публикации
public string Name { get; set; }
// открытое свойство автор публикации
public Person Author { get; set; }
// открытое свойство дата публикации
public DateTime DatePublic { get; set; }
// Конструктор с заданными параметрами
public Paper(string a, Person b, DateTime c)
{
Name = a;
Author = b;
DatePublic = c;
}
// Конструктор без параметров иннициализирующий значениями по умолчанию
public Paper()
{
Name = "UnknownPublication";
Author = new Person();
DatePublic = DateTime.Now;
}
// перегруженная функция возвращает все поля класса
public override string ToString()
{
return Name+' '+Author.Name+' '+Author.Surname+' '+DatePublic.ToString("dd.mm.yyyy");
}
}
class ResearchTeam
{
public string Topic { get; private set; }
public string Name { get; private set; }
public int Regnumber { get; private set; }
public TimeFrame Last { get; private set; }
public List<Paper> Publics { get; private set; }
public ref Paper LastPublics
{
get
{
DateTime MaxDate = DateTime.Parse("01.01.0000");
int LastP = 0;
if (Publics.Count == 0)
return null;
for (int i = 0; i < Publics.Count; i++)
if (Publics[i].DatePublic > MaxDate)
LastP = i;
return ref Publics[LastP];
}
}
}
Разобрался.
public Paper LastPublics
{
get
{
if (Publics.Count == 0) return null;
Paper LastPublics = Publics[0];
for (int i = 0; i < Publics.Count; i++)
if (Publics[i].DatePublic > LastPublics.DatePublic)
LastPublics = Publics[i];
return LastPublics;
}
}Решение задачи: «Метод класса возвращающий ссылку на объект»
textual
Листинг программы
public Paper LastPublics
{
get
{
return Publics.OrderByDescending(x => x.DatePublic).FirstOrDefault();
}
}