Инициализатор поля не может обращаться к нестатическому полю - 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();
}
}
}