Работа со структурами - C# (182926)
Формулировка задачи:
Всем доброго дня!
имеется вопрос по работе со структурами на C#. Вот условие задания: Второй файл, остальной код для работы:
Вопрос вот в чём. Когда запускаю на текущем этапе программу при работе с массивом в файле кода появляется ошибка, ссылающаяся на нулевой объект:
Как правильно его объявить ? Может массив я не правильно создал ?
Описать тип TDate — структура с полями целого типа Day (день), Month (месяц) и Year (год). Протестировать является ли дата правильной. Создать массив структур (не более чем для пяти дат). Вывести на экран те даты, у которых месяца являются зимними, в противном случае вывести сообщение «Нет дат, у которых месяца являются зимними».
В результате есть часть кода. Первый - это структура TDate:using System;
namespace Одномерные_массивы_и_структуры
{
internal class TDate
{
public int day, month, year;
public Byte day1, month1, year1;
public void Show()
{
Console.WriteLine("Введите дату");
day = Int32.Parse(Console.ReadLine());
month = Int32.Parse(Console.ReadLine());
year = Int32.Parse(Console.ReadLine());
if ((day > 0 && day <= 31) && (month > 0 && month <= 12) && (year > 0))
{
Console.WriteLine("Вы ввели следующую дату: " + day + ". " + month + ". " + year);
}
{
Console.WriteLine("Дата введена не правильно. Повторите попытку");
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Одномерные_массивы_и_структуры
{
class odnom_massiv
{
static void Main(string[] args)
{
TDate data = new TDate();
int day, month, year;
data.Show();
Console.WriteLine("Введите 5 дат");
//int n = Byte.Parse(Console.ReadLine());
TDate[] mas = new TDate[5];
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Введите " + i + "-ю дату");
Console.WriteLine("День");
mas[i].day1 = Byte.Parse(Console.ReadLine());
Console.WriteLine("Месяц");
mas[i].month1 = Byte.Parse(Console.ReadLine());
Console.WriteLine("Год");
mas[i].year1 = Byte.Parse(Console.ReadLine());
}Решение задачи: «Работа со структурами»
textual
Листинг программы
for (int i = 0; i < 5; i++) {
mas[i] = new TDate();
}