При попытке заполнить поле класса выбрасывается исключение "System.NullReferenceException" - C#
Формулировка задачи:
При попытке заполнить поле класса выбрасывает исключение "System.NullReferenceException"
обвиняет эту строку да, тут массив объектов.
Тут я реализую задачу Джонсона для двух станков. Если есть еще решения на С# то тоже можно скинуть, буду благодарен.
Код программы если он необходим.
AData[i].A = int.Parse(Console.ReadLine());
using System;
namespace algoritmJohnsona
{
class Items
{
public static int a, b, id;
public int result;
public static bool operator <(Items Obj1, Items Obj2)
{
if (Obj1.result < Obj2.result)
return true;
return false;
}
public static bool operator >(Items Obj1, Items Obj2)
{
if (Obj1.result > Obj2.result)
return true;
return false;
}
public void Difference()
{
result = a - b;
}
public int ID
{
get
{
return id;
}
set
{
id = value;
}
}
public int A
{
set
{
a = value;
}
}
public int B
{
set
{
b = value;
}
}
}
class Program
{
public static void ShowItems(Items[] ArrayData)
{
for (int i = 0; i < ArrayData.Length; i++)
Console.WriteLine("J = {0}", ArrayData[i].ID);
}
public static void SwapItems(Items Obj1, Items Obj2)
{
int temp = Obj1.result;
Obj1.result = Obj2.result;
Obj2.result = temp;
}
public static void SortItems(Items[] ArrayData)
{
for (int i = 1; i < ArrayData.Length; i++)
for (int j = i; j > 0 && ArrayData[j - 1] > ArrayData[j]; j--) // пока j>0 и элемент j-1 > j, x-массив int
SwapItems(ArrayData[j - 1], ArrayData[j]); // меняем местами элементы j и j-1
}
static void Main(string[] args)
{
Items[] AData = new Items[5];
Console.WriteLine("Enter Array");
for (int i = 0; i < AData.Length;i++ )
{
Console.Write(" Pass Y1: ");
int y = int.Parse(Console.ReadLine());
Console.WriteLine(y);
AData[i].A = int.Parse(Console.ReadLine()); // обвиняет эту строку
Console.Write(" Pass Y2: ");
AData[i].B = int.Parse(Console.ReadLine());
AData[i].Difference();
}
SortItems(AData);
ShowItems(AData);
Console.ReadKey();
}
}
}Решение задачи: «При попытке заполнить поле класса выбрасывается исключение "System.NullReferenceException"»
textual
Листинг программы
for (int i = 0; i < AData.Length;i++ )
{
AData[i] = new Items();
AData[i].ID = i;
Console.Write(" Pass Y1: ");
AData[i].A = int.Parse(Console.ReadLine());
Console.Write(" Pass Y2: ");
AData[i].B = int.Parse(Console.ReadLine());
AData[i].Difference();
}