Двумерный массив. Ошибка "Элемент не существует в текущем контексте" - 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]
}
}