@defild

Как переопределить ToString для своего класса Date?

У меня есть свой класс Date, но когда я хочу вывести значения в другой класс то у меня выводит Название проекта.Data, я почитал в инете что надо переопределить на ToString но я не понимаю как это сделать

Вот код класса Date:
internal class Date
    {
        protected int Year; 
        protected int Month;
        protected int Day;
        protected int Hours;
        protected int Minutes;

        
        public Date()
        {
            Year = 2022;
            Month = 1;
            Day = 11;
            Hours = 12;
            Minutes = 20;
        }
         
        
        public int GetYear()
        {
          return Year;
        }
        public int GetMonth()
        {
            return Month;
        }
        public int GetDay()
        {
            return Day;
        }
        public int GetHours()
        {
            return Hours;
        }
        public int GetMinutes()
        {
            return Minutes;
        }

        public void SetYear(int year)
        {
            Year = year;
        }
        public void SetMonth(int month)
        {
            if(Month > 0 && Month <= 12)
            {
                Month = month;
            }
        }
        public void SetDay(int day)
        {
            if(Day > 0 && Day <= 31)
            {
                Day = day;
            }
        }
        public void SetHours(int hours)
        {
            if(Hours > 0 && Hours <= 24)
            {
                Hours = hours;
            }
        }
        public void SetMinutes(int minutes)
        {
            if(Minutes > 0 && Minutes <= 60)
            {
                Minutes = minutes;
            }
        }
    }

Вот другой класс в котором надо вывести значения с Date:
internal class Airplane
    {
        protected string StartCity;
        protected string FinishCity;
        protected Date StartDate;
        protected Date FinishDate;

       
        public Airplane()
        {
            StartCity = "London";
            FinishCity = "Lviv";
            StartDate = new Date();
            FinishDate = new Date();
        }
        
        public string GetStartCity()
        {
            return StartCity;
        }
        public string GetFinishCity()
        {
            return FinishCity;
        }

        public Date GetStartDate()
        {
            return StartDate;
        }
        
    }
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
public override string ToString()
{
   return "Я не читаю документацию, хотя ссылку получил в предыдущем вопросе";
}
Ответ написан
vabka
@vabka Куратор тега C#
Токсичный шарпист
В классе Date пиши
public override string ToString()
{
   return "Я умею переопределять методы";
}

Но вообще код максимально противный, и никогда так больше не пиши.
1. Тебе не нужен Date, тк есть прекрасный тип DateTime и DateTimeOffset (а для особых ценителей - DateOnly, TimeOnly и ещё целая библиотека NodaTime)
2. В шарпе не нужны методы Get* / Set*. Тут для этого есть свойства.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы