2014-09-06 3 views
-5

Я сделал массив объектаобъекта не задана ссылка экземпляра объекта

node[] allProcess = new node[3]; 

я хочу, чтобы поместить элементы данных в очереди, как

enque(allprocess[0].pName,allProcess[0].burstTime); 

но он не работает и ошибок показали ссылка на объект не установлена ​​в экземпляр объекта,

Как я могу это сделать?

ответ

1

Вам необходимо инициализировать объект узла и добавить его в массив перед доступом к свойствам.

node[] allProcess = new node[3]; 

node node1 = new node(); 
node1.pName = "name"; 

node[0] = node1; 

И затем вы можете получить доступ к этой первой позиции массива узлов.

+0

спасибо за помощь, но могу ли я инициализировать все элементы массива через цикл или что-то в этом роде, вместо этого инициализируя его один за другим. –

0

Когда вы инициализируете массив, он заполняется значением по умолчанию для базового типа массива: в вашем случае node. Так как node является, предположительно, ссылочным типом (то есть классом), его значением по умолчанию является null. Попытка доступа к члену, например. pName, из значения null генерирует NullReferenceException, как вы описали.

Этого следует ожидать; там нет объекта, так как вы можете получить доступ к своим членам? Вам нужно будет инициализировать элементы массива каким-либо образом, прежде чем пытаться получить доступ/разыменовать их.

+0

Спасибо за помощь, пожалуйста, можете ли вы рассказать мне, как инициализировать весь элемент с помощью цикл или что-то –

+0

@ManishSingh Это действительно зависит от того, какие объекты 'node' фактически должны представлять, какие данные они должны содержать и откуда поступают данные. Я думаю, вам придется работать над этим самим. –

+0

Хорошо @ Может, я разобраю это, я надеюсь! Тем не менее спасибо за помощь –

Смежные вопросы