При попытке заполнить поле класса выбрасывается исключение "System.NullReferenceException" - C#

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

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

При попытке заполнить поле класса выбрасывает исключение "System.NullReferenceException" обвиняет эту строку
Листинг программы
  1. AData[i].A = int.Parse(Console.ReadLine());
да, тут массив объектов. Тут я реализую задачу Джонсона для двух станков. Если есть еще решения на С# то тоже можно скинуть, буду благодарен. Код программы если он необходим.
Листинг программы
  1. using System;
  2.  
  3. namespace algoritmJohnsona
  4. {
  5. class Items
  6. {
  7. public static int a, b, id;
  8. public int result;
  9. public static bool operator <(Items Obj1, Items Obj2)
  10. {
  11. if (Obj1.result < Obj2.result)
  12. return true;
  13. return false;
  14. }
  15. public static bool operator >(Items Obj1, Items Obj2)
  16. {
  17. if (Obj1.result > Obj2.result)
  18. return true;
  19. return false;
  20. }
  21. public void Difference()
  22. {
  23. result = a - b;
  24. }
  25. public int ID
  26. {
  27. get
  28. {
  29. return id;
  30. }
  31. set
  32. {
  33. id = value;
  34. }
  35. }
  36. public int A
  37. {
  38. set
  39. {
  40. a = value;
  41. }
  42. }
  43. public int B
  44. {
  45. set
  46. {
  47. b = value;
  48. }
  49. }
  50. }
  51. class Program
  52. {
  53. public static void ShowItems(Items[] ArrayData)
  54. {
  55. for (int i = 0; i < ArrayData.Length; i++)
  56. Console.WriteLine("J = {0}", ArrayData[i].ID);
  57. }
  58. public static void SwapItems(Items Obj1, Items Obj2)
  59. {
  60. int temp = Obj1.result;
  61. Obj1.result = Obj2.result;
  62. Obj2.result = temp;
  63. }
  64. public static void SortItems(Items[] ArrayData)
  65. {
  66. for (int i = 1; i < ArrayData.Length; i++)
  67. for (int j = i; j > 0 && ArrayData[j - 1] > ArrayData[j]; j--) // пока j>0 и элемент j-1 > j, x-массив int
  68. SwapItems(ArrayData[j - 1], ArrayData[j]); // меняем местами элементы j и j-1
  69. }
  70. static void Main(string[] args)
  71. {
  72. Items[] AData = new Items[5];
  73. Console.WriteLine("Enter Array");
  74. for (int i = 0; i < AData.Length;i++ )
  75. {
  76. Console.Write(" Pass Y1: ");
  77. int y = int.Parse(Console.ReadLine());
  78. Console.WriteLine(y);
  79. AData[i].A = int.Parse(Console.ReadLine()); // обвиняет эту строку
  80. Console.Write(" Pass Y2: ");
  81. AData[i].B = int.Parse(Console.ReadLine());
  82. AData[i].Difference();
  83. }
  84. SortItems(AData);
  85. ShowItems(AData);
  86. Console.ReadKey();
  87. }
  88. }
  89. }

Решение задачи: «При попытке заполнить поле класса выбрасывается исключение "System.NullReferenceException"»

textual
Листинг программы
  1.         for (int i = 0; i < AData.Length;i++ )
  2.             {
  3.                 AData[i] = new Items();
  4.                 AData[i].ID = i;
  5.                 Console.Write(" Pass Y1: ");
  6.                 AData[i].A = int.Parse(Console.ReadLine());
  7.                 Console.Write(" Pass Y2: ");
  8.                 AData[i].B = int.Parse(Console.ReadLine());
  9.                
  10.                 AData[i].Difference();
  11.             }

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы