Ссылка на объект не установлена ​​на экземпляр объекта, но есть? - PullRequest
0 голосов
/ 23 июня 2011

Я, должно быть, что-то здесь упускаю, но у меня есть экземпляр моего объекта представления, вызываемого в области видимости, и когда я пытаюсь использовать его в другой строке, я выкидываю эту ошибку о том, что не указана ссылка на экземпляр,Что дает?

protected void Page_Load(object sender, EventArgs e)
{

    string x = Request.QueryString["SubmissionId"];

    SubmissionService ss = new SubmissionService();
    Submission sub = ss.getSubmissionByID(x);

if (sub.Status1.Equals(0))
    {
        PanelComment.Visible = false;

    }
    else

Ответы [ 4 ]

3 голосов
/ 23 июня 2011

Это может быть ноль:

ss 
sub
sub.Status1
x

Поставить точку останова и отладить ...

1 голос
/ 23 июня 2011

Учитывая код, который вы указали, может быть три причины:

  1. свойство Status1 имеет значение null, это приведет к возникновению исключения NullReferenceException.
  2. PanelComment равен нулю
  3. sub is null
1 голос
/ 23 июня 2011

Возможно, что свойство Status1 вашего подчиненного объекта 'sub' равно нулю ...

0 голосов
/ 23 июня 2011

Учитывая код, следующие свойства могут быть нулевыми:

  • Sub sub (если нет представления с ID = x)
  • sub.Status1
  • Элемент списка

PanelComment

Просто измените свой код следующим образом:

Submission sub = String.IsNullOrEmpty(x) ? null : ss.getSubmissionByID(x);

if (sub!= null && sub.Status1 == 0){
...

Это должно исправить большинство нулевых ссылок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...