Метод класса возвращающий ссылку на объект - 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();
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы