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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы