Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> c#,Вывод на консоль, c#,Вывод на консоль  
:(
    Опции темы
Vadimdol
Дата 26.10.2015, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2015

Репутация: нет
Всего: нет



Подскажите   как   результат  вывести   на  консоль   ?  
   Свойство типа 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));
        }


    }


}



Это сообщение отредактировал(а) Vadimdol - 26.10.2015, 23:20
PM MAIL   Вверх
chupachups
Дата 28.10.2015, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Код

Console.WriteLine(paper?.ToString() ?? "нет публикаций");


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Vadimdol
Дата 28.10.2015, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2015

Репутация: нет
Всего: нет



chupachups, 

    Непонятно   о   чем   Вы  ?     И   что   имеется   ввиду    под   знаками   вопросов  .    

   Я   уже   пробовал   с   десяток    вариантов    разного   характера ,  был    наподобе  как  Ваш .    

Как   строку   170  вывести    на  консоль    ?   :


 
Код

return Count == 0 ? null : this.OrderByDescending(p => p.PublishDate).FirstOrDefault();

PM MAIL   Вверх
chupachups
Дата 28.10.2015, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Строка 170 всего лишь возвращает некое значение или null.
Я показал как полученный через это свойство объект paper вывести на консоль, а вопросы - это синтаксис такой в NET 4.6, в NET 2.0 было бы так:
Код

if (paper == null)
    Console.WriteLine("нет публикаций");
else
    Console.WriteLine(paper.ToString());


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Vadimdol
Дата 28.10.2015, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2015

Репутация: нет
Всего: нет



Vadimdol, 

Спасибо !

  Вы   можете  в  самой программе  мне  показать , где   прописать  эти строки  ?

  С  ToString()  я   уже  пробовал  сколько раз   нечто  подобное  ,  ничего  так

  и не получилось.  И  сейчас  не  сориентируюсь.

                                                                                             smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.