Инициализатор поля не может обращаться к нестатическому полю - C# (197855)

Узнай цену своей работы

Формулировка задачи:

Код класса
 class massive
    {
        int m, n;
 
        public int M
        {
            get { return m; }
            set { if (value > 0) m = value; }
        }
        public int N
        {
            get { return n; }
            set { if (value > 0) n = value; }
        }
 
        public massive(int m, int n)
        {
           this.m = m;
            this.n = n;
        }
 
        double[,] a = new double[m, n];
        Random r = new Random();
 
        public void realize_mass()
        {
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = r.Next(10) + r.NextDouble();
                    Console.Write(a[i, j] + "\t");
                }
                Console.WriteLine();
            }
        }
    }
Выбивает ошибку в строке
 double[,] a = new double[m, n];
(обьявляю массив). Текст ошибок: 1>D:\Projects\C++\VS 12 (3 Kourse)\ConsoleApplication8\ConsoleApplication8\Program.cs(28,34,28,35): error CS0236: Инициализатор поля не может обращаться к нестатическому полю, методу или свойству "ConsoleApplication8.massive.m" 1>D:\Projects\C++\VS 12 (3 Kourse)\ConsoleApplication8\ConsoleApplication8\Program.cs(28,37,28,38): error CS0236: Инициализатор поля не может обращаться к нестатическому полю, методу или свойству "ConsoleApplication8.massive.n" В чём моя ошибка? Поле то статическим нельзя сделать.

Решение задачи: «Инициализатор поля не может обращаться к нестатическому полю»

textual
Листинг программы
class massive
    {
        int m, n;
        double[,] a; // объявляем массив
 
        public int M
        {
            get { return m; }
            set { if (value > 0) m = value; }
        }
        public int N
        {
            get { return n; }
            set { if (value > 0) n = value; }
        }
 
        public massive(int m, int n)
        {
            this.m = m;
            this.n = n;
            a = new double[m, n]; // инициализируем массив в конструкторе
        }
 
        
        Random r = new Random();
 
        public void realize_mass()
        {
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = r.Next(10) + r.NextDouble();
                    Console.Write(a[i, j] + "\t");
                }
                Console.WriteLine();
            }
        }
    }

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


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

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

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