Инициализатор поля не может обращаться к нестатическому полю - C# (197855)
Формулировка задачи:
Код класса
Выбивает ошибку в строке (обьявляю массив).
Текст ошибок:
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"
В чём моя ошибка?
Поле то статическим нельзя сделать.
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];
Решение задачи: «Инициализатор поля не может обращаться к нестатическому полю»
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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д