Для нестатического поля, метода или свойства требуется ссылка на объект - C# (194176)
Формулировка задачи:
Выдает ошибку ""Ошибка 1 Для нестатического поля, метода или свойства "Manager_Account.CalcMatrix.Calc(int, int)" требуется ссылка на объект c:\users\user-pc\documents\visual studio 2013\Projects\Manager Account\Manager Account\Program.cs 68 51 Manager Account"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace Manager_Account { public class CalcMatrix { public CalcMatrix() { } public void AmountAll(int[,] matrix, int rowCount, int columnCount) { var sum = 0; for (var i = 0; i < rowCount; i++) for (var j = 0; j < columnCount; j++) sum += matrix[i, j]; Console.WriteLine("Сумма всех элементов равна = " + sum); } public int[,] InputMatrix(int rowCount, int columnCount) { var r = new Random(); var matrix = new int[rowCount, columnCount]; Console.WriteLine("\nМатрица:"); for (var i = 0; i < rowCount; i++) { for (var j = 0; j < columnCount; j++) { matrix[i, j] = r.Next(1, 9); Console.Write(matrix[i, j] + " "); } Console.WriteLine(); } return matrix; } public void AmountMainDioganal(int[,] matrix, int rowCount) { var sum = 0; for (var i = 0; i < rowCount; i++) sum += matrix[i, i]; Console.WriteLine("Сумма всех элементов главной диоганали равна = " + sum); } public void Calc(int n, int m) { var matrix = InputMatrix(n, m); AmountAll(matrix, n, m); AmountMainDioganal(matrix, n); } } class Program { static void Main() { Console.WriteLine("Введите количество строк:"); var n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите количество столбцов:"); var m = Convert.ToInt32(Console.ReadLine()); var calcMatrix = new CalcMatrix(); Thread t = new Thread(new ThreadStart(CalcMatrix.Calc(n, m))); t.Start(); Console.ReadKey(); } } }
Решение задачи: «Для нестатического поля, метода или свойства требуется ссылка на объект»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace Manager_Account { public class CalcMatrix { public class CalcArgs { public int M { get; set; } public int N { get; set; } public CalcArgs(int m, int n) { M = m; N = n; } } public CalcMatrix() { } public void AmountAll(int[,] matrix, int rowCount, int columnCount) { var sum = 0; for (var i = 0; i < rowCount; i++) for (var j = 0; j < columnCount; j++) sum += matrix[i, j]; Console.WriteLine("Сумма всех элементов равна = " + sum); } public int[,] InputMatrix(int rowCount, int columnCount) { var r = new Random(); var matrix = new int[rowCount, columnCount]; Console.WriteLine("\nМатрица:"); for (var i = 0; i < rowCount; i++) { for (var j = 0; j < columnCount; j++) { matrix[i, j] = r.Next(1, 9); Console.Write(matrix[i, j] + " "); } Console.WriteLine(); } return matrix; } public void AmountMainDioganal(int[,] matrix, int rowCount) { var sum = 0; for (var i = 0; i < rowCount; i++) sum += matrix[i, i]; Console.WriteLine("Сумма всех элементов главной диоганали равна = " + sum); } public void Calc(object calcAgrs) { CalcArgs args = calcAgrs as CalcArgs; if (args == null) throw new ArgumentNullException(); var matrix = InputMatrix(args.N, args.M); AmountAll(matrix, args.N, args.M); AmountMainDioganal(matrix, args.N); } } class Program { static void Main() { Console.WriteLine("Введите количество строк:"); var n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите количество столбцов:"); var m = Convert.ToInt32(Console.ReadLine()); var calcMatrix = new CalcMatrix(); Thread t = new Thread(new ParameterizedThreadStart(calcMatrix.Calc)); t.Start(new CalcMatrix.CalcArgs(m, n)); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д