Ссылка на объект не установлена при использовании нового ключевого слова

#.net #vb.net

#.net #vb.net

Вопрос:

У меня есть этот класс CMember. Я пишу что-то вроде

 Dim moMember As CMember
moMember = New CMember
  

Затем я хочу установить переменную в ее свойство CentreId:

 moMember.CentreId = CentreNumber
  

Оба являются целыми числами, однако генерируется исключение Object Refrence Not Set, ПОЧЕМУ?

Комментарии:

1. Должно быть, это часть кода, который вы нам не предоставили. Отладчик также должен предоставить дополнительную информацию.

Ответ №1:

Я предполагаю, что это moMember не null так, но установщик свойств ( CentreId ) использует некоторое внутреннее состояние, которое у меня правильно настроено, и, как следствие, генерирует исключение. Классическим примером было бы событие, вызываемое без проверки на нуль, как и некоторый внутренний объект, который содержит состояние. Проверьте установщик, чтобы увидеть, что происходит. Если присваиваемое вами значение ( CentreNumber ) является свойством, оно также может быть передано оттуда; опять же: проверьте средство получения.

Для класса возможно new вернуть null , но только в крайнем случае, который не может произойти случайно. Таким образом, я очень сомневаюсь, что это moMember есть null — отладчик сообщит вам достаточно быстро.

Ответ №2:

Если между инициализацией и установкой нет другого кода, то CentreId не должно быть никакого способа moMember использовать значение null. Возможно, исключение возникает во время построения CMember .