Передача массива в поле структуры - C#
Формулировка задачи:
Необходимо передать массив из 3 значений передать в аналогичное поле в структуре. При попытке копирования вылетает ошибка
проблема в этой части
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /*Описать структуру с именем NOTE, содержащую следующие поля: * фамилия, имя; * номер телефона; * дата рождения (массив из трех чисел). * Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из * восьми элементов типа NOTE(записи должны быть упорядочены по дате рождения); * вывод на экран информации о человеке, номер телефона которого введен с клавиатуры (если такого нет, * вывести соответствующее сообщение). */ namespace Lab3_1 { struct Note { string _surname; string _name; int _phone; int[] _birthday; public Note(string surname, string name, int phone, int[] birthday) { if (birthday.Length != 3) throw new Exception("Массив должен состоять из трёх чисел."); _surname = surname; _name = name; _phone = phone; _birthday = new int[3]; _birthday = birthday; } public string Surname { get { return _surname; } set { _surname = value; } } public string Name { get { return _name; } set { _name = value; } } public int Phone { get { return _phone; } set { _phone = value; } } public int[] Birthday { get { return _birthday; } set { if (value.Length != 3) throw new Exception("Массив должен состоять из трёх чисел."); _birthday = value; } } public override string ToString() { return "Фамилия: " + this.Surname + " Имя: " + this.Name + "\nНомер телефона: " + this.Phone; } }; class Program { static void Main(string[] args) { Note[] note = new Note[2]; int[] BDay = new int[3]; string[] template = {"Введите число: ", "Введите месяц: ", "Введиет год: "}; //DateTime date = new DateTime(); //DateTime dateTMP = new DateTime(); Console.WriteLine("Заполнять в ручную?(Y/N)"); string res = Console.ReadLine(); if (res == "N" || res == "n") { string[] surname = {"dsd", "zgf"}; string[] name = {"wfwe", "eww"}; int[] phone = {2342, 12312}; int[,] bday = { {20, 5, 1994}, {15, 2, 1990} }; for (int i = 0; i < note.Length; i++) { note[i].Surname = surname[i]; note[i].Name = name[i];; note[i].Phone = phone[i]; for (int j = 0; j < 3; j++) { BDay[j] = bday[i, j]; } Array.Copy(note[i].Birthday, BDay, 0); //BDay.CopyTo(note[i].Birthday, 0); //note[i].Birthday.CopyTo(BDay, 0); } } else { Console.WriteLine("Введите новую запись."); for (int i = 0; i < note.Length; i++) { Console.Write("Введите фамилию: "); note[i].Surname = Console.ReadLine(); Console.Write("\tВведите имя: "); note[i].Name = Console.ReadLine(); Console.Write("\nВведите номер телефона: "); note[i].Phone = int.Parse(Console.ReadLine()); Console.WriteLine("Введите дату рожденияч"); for (int j = 0; j < 3; j++) { Console.Write(template[j]); BDay[j] = int.Parse(Console.ReadLine()); } note[i].Birthday = BDay; } } //date = new DateTime(note[0].Birthday[2], note[0].Birthday[1], note[0].Birthday[0]); //for (int i = 0; i < note.Length; i++) //{ // for (int j = i + 1; j < note.Length; j++) // { // dateTMP = new DateTime(note[j].Birthday[2], note[j].Birthday[1], note[j].Birthday[0]); // if (date > dateTMP) // { // var tmp = note[i]; // note[i] = note[j]; // note[j] = tmp; // } // else // { // var tmp = note[j]; // note[j] = note[i]; // note[i] = tmp; // } // } //} for (int i = 0; i < note.Length; i++) { Console.WriteLine(note[i].Surname); Console.WriteLine(note[i].Name); Console.WriteLine(note[i].Phone); for (int j = 0; j < 3; j++) { Console.Write(note[i].Birthday[j]); if (j != 2) { Console.Write("."); } } Console.WriteLine(); } Console.WriteLine("\nВведите номер телефона для поиска:"); for (int i = 0; i < note.Length; i++) { if (int.Parse(Console.ReadLine()) == note[i].Phone) { Console.WriteLine(note[i].Surname); Console.WriteLine(note[i].Name); for (int j = 0; j < 3; j++) { Console.Write(note[i].Birthday[j]); if (j != 2) { Console.Write("."); } } Console.WriteLine(); } } Console.ReadKey(); } } }
for (int i = 0; i < note.Length; i++) { note[i].Surname = surname[i]; note[i].Name = name[i];; note[i].Phone = phone[i]; for (int j = 0; j < 3; j++) { BDay[j] = bday[i, j]; } Array.Copy(note[i].Birthday, BDay, 0); //BDay.CopyTo(note[i].Birthday, 0); //note[i].Birthday.CopyTo(BDay, 0); }
Решение задачи: «Передача массива в поле структуры»
textual
Листинг программы
int[] a = new int[] { 1, 2, 3 }; int[] b = new int[3]; for (int i = 0; i < a.Length; i++) { b[i] = a[i]; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д