Не выводиться на экран результаты - C#
Формулировка задачи:
using System;
namespace ConsoleApplication1
{
/// <summary> /// Класс, предназначенный для хранения персональных данных
/// </summary>
public class Person
{
private string _name; // закрытое поле типа string, в котором хранится имя
private string _surname; // закрытое поле типа string, в котором хранится фамилия
private DateTime _birth; // закрытое поле типа DateTime для даты рождения
/// <summary>
/// Конструктор с тремя параметрами для инициализации всех полей класса
/// </summary>
/// <param name="name">Имя</param>
/// <param name="surname">Фамилия</param>
/// <param name="birth">Дата рождения</param>
public Person(string name, string surname, DateTime birth)
{
_name = name;
_surname = surname;
_birth = birth;
}
/// <summary>
/// Конструктор без параметров, инициализирующий все поля класса
/// некоторыми значениями по умолчанию.
/// Используется ссылка на конструктор с параметрами this(параметры).
/// </summary>
public Person()
: this("UnknounName", "UnknownSurname", DateTime.Now)
{
}
/*/// <summary>
/// Конструктор без параметров, инициализирующий все поля класса
/// можно реализовать без ссылки на конструктор с параметрами.
/// Результаты будут идентичны
/// </summary>
public Person()
{
_name = "UnknounName";
_surname = "UnknownSurname";
_birth = DateTime.Now;
}*/
/// <summary>
/// Свойство типа DateTime для доступа к полю с датой рождения
/// </summary>
public DateTime Birth
{
get
{
return _birth;
}
set
{
_birth = value;
}
}
/// <summary>
/// Свойство типа string для доступа к полю с именем
/// </summary>
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
/// <summary>
/// Свойство типа string для доступа к полю с фамилией
/// </summary>
public string Surname
{
get
{
return _surname;
}
set
{
_surname = value;
}
}
/// <summary>
/// Свойство типа int c методами get и set
/// для получения информации (get) и изменения (set) года рождения
/// в закрытом поле типа DateTime, в котором хранится дата рождения
/// </summary>
public int Year
{
get
{
return _birth.Year;
}
set
{
// т.к. свойство Year в переменных типа DateTime только на чтение,
// изменяем год рождения, создавая дату заново, указывая вместо года value
_birth = new DateTime(value, _birth.Month, _birth.Day);
}
}
/// <summary>
/// Перегруженная версия виртуального метода string ToString()
/// для формирования строки со значениями всех полей класса
/// </summary>
/// <returns>Отформатированная строка</returns>
public override string ToString()
{
return String.Format("Имя: {0}\nФамилия: {1}\nДата рождения: {2}",
_name, _surname, _birth.ToShortDateString());
}
/// <summary>
/// Виртуальный метод string ToShortString(),
/// который возвращает строку, содержащую только имя и фамилию
/// </summary>
/// <returns>Отформатированная строка</returns>
public virtual string ToShortString()
{
return String.Format("Имя: {0}\nФамилия: {1}", _name, _surname);
}
}
}
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Объявили экземпляр класса и вызвали конструктор по умолчанию
Person pers1 = new Person();
Console.WriteLine("Экземпляр класса с полями, заполненными по умолчанию:");
Console.WriteLine(pers1.ToString());
Console.WriteLine(pers1.ToShortString());
// Объявили экземпляр класса
Person pers2;
Console.WriteLine();
Console.WriteLine("Введите имя, фамилию, дату рождения через Enter");
// Вызвали конструктор с параметрами, в которые считываем данные
try
{
pers2 = new Person
(
Console.ReadLine(),
// считываем имя
Console.ReadLine(),
// считываем фамилию
DateTime.Parse(Console.ReadLine()));// считываем дату рождения
}
catch (Exception ex)
{
Console.WriteLine("Возникла следующая ошибка: {0}", ex.Message);
pers2 = new Person();
}
Console.WriteLine("\nРезультат заполнения:\n{0}", pers2.ToString());
// Изменяем поля имя, фамилия, год, используя свойства
pers2.Name = "Полиграф";
pers2.Surname = "Шариков";
pers2.Year = 1925;
Console.WriteLine("\nИзмененные свойства объекта pers2:");
Console.WriteLine(pers2.ToString());
}
}
}Решение задачи: «Не выводиться на экран результаты»
textual
Листинг программы
Console.WriteLine(pers2.ToString()); Console.Readln();