Двумерный массив. Ошибка "Элемент не существует в текущем контексте" - C#
Формулировка задачи:
Ошибка: Элемент "Nmass" не существует в текущем контексте.
using System; using System.Text; namespace Lab_3 { class MassWork { int[,] arr; public int N { get { return Nmass; // [B]Ошибка: Элемент "Nmass" не существует в текущем контексте. [/B] } set {//в if генерируем ошибку if (value <= 0) throw new ArgumentException("Размер массива должен быть больше нуля!", "N"); Nmass = value; // [B]Ошибка: Элемент "Nmass" не существует в текущем контексте. [/B] } } public MassWork() { Console.Write("Введите количество студентов: "); int Nmass; try { Nmass = Convert.ToInt32(Console.ReadLine()); } catch (ArgumentException ex) { Console.WriteLine("ОШИБКА: " + ex.Message); Console.Write("Введите размер массива числовыми значениями: "); Nmass = Convert.ToInt32(Console.ReadLine()); } catch (StackOverflowException) { Nmass = Convert.ToInt32(Console.ReadLine()); } int Mmass = 2; int N = Nmass; int M = Mmass; int Length = N * M; arr = new int[Nmass, 2]; } public MassWork(int rows, int cols, int Nmass, int Mmass, int N, int M, int Length) { Nmass = rows; Mmass = cols; Length = rows * cols; N = rows; M = cols; arr = new int[Nmass, Mmass]; } public int this[int index1, int index2] { set { arr[index1, index2] = value; } get { return arr[index1, index2]; } } public void AddMassWork(int i, int NZach, int NGod) { this[i, 0] = NZach; Console.WriteLine(DateTime.Today.Year - NGod); try { int KolYears = DateTime.Today.Year - NGod; } catch (ArgumentException ex) { Console.WriteLine("ОШИБКА: " + ex.Message); Console.Write("Введите год рождения числовыми значениями: "); NGod = Convert.ToInt32(Console.ReadLine()); } catch (StackOverflowException) { int Nmass = Convert.ToInt32(Console.ReadLine()); } this[i, 1] = NGod; } public void ResultMassWork(int maxYear) { int kolMax = 0; for (int i = 0; i < N; i++) { Console.WriteLine("Возраст студента (" + this[i, 0] + ") составляет: " + Convert.ToString(DateTime.Today.Year - this[i, 1] - 1) + " лет."); if (DateTime.Today.Year - this[i, 1] > maxYear) { kolMax++; } } Console.WriteLine("Количество студентов, возраст которых превышает заданное значение = " + Convert.ToString(kolMax)); } public void GetMassWork() { for (int i = 0; i < N; i++) { Console.WriteLine(this[i, 0] + "\t" + this[i, 1]); } Console.ReadLine(); } } class Program { static void Main(string[] args) { MassWork myMass = new MassWork(); Console.WriteLine("Введите данные, количество студентов = " + myMass.N); int Nzach; int Gr; Console.WriteLine(); for (int i = 0; i < myMass.N; i++) { Console.Write("Введите номер зач.книжки: "); Nzach = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите год рождения: "); Gr = Convert.ToInt32(Console.ReadLine()); myMass.AddMassWork(i, Nzach, Gr); } Console.WriteLine(); int maxYear; Console.Write("Задайте максимальный возраст: "); maxYear = Convert.ToInt32(Console.ReadLine()); myMass.ResultMassWork(maxYear); Console.WriteLine(); String yesno; Console.WriteLine("Вывести полный список студентов?(да или нет)"); yesno = Console.ReadLine(); if (yesno == "да") { myMass.GetMassWork(); } } } }
Решение задачи: «Двумерный массив. Ошибка "Элемент не существует в текущем контексте"»
textual
Листинг программы
public MassWork() { ... int Nmass; ... } public int N { get { return Nmass; // [B]Ошибка: Элемент "Nmass" не существует в текущем контексте. [/B] } set {//в if генерируем ошибку if (value <= 0) throw new ArgumentException("Размер массива должен быть больше нуля!", "N"); Nmass = value; // [B]Ошибка: Элемент "Nmass" не существует в текущем контексте. [/B] } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д