2015-07-16 3 views
-3

Я пытаюсь получить доступ к значению resulterr в кнопке clickevent, чтобы отобразить его в окне сообщений. Я не получаю значение внутри события нажатия кнопки, несмотря на то, что список resulterr является общедоступным. Я получаю исключение, поскольку ссылка объекта не установлена ​​в экземпляр объекта. Исправьте ошибку.ссылка на объект null исключение

public List<ErrorMsgTemplate> resulterr; 
    public PPFCWCFServiceClient ppfcObj = new PPFCWCFServiceClient(); 

    public Admin() 
     : base("Administration") 
    { 
     SplashScreenManager.ShowDefaultWaitForm(); 
     InitializeComponent(); 

     GetSource(); 
     ErrorMsg(); 
     FillDivision(); 

     cmbDivision.SelectedIndex = -1; 

     SplashScreenManager.CloseDefaultWaitForm(); 


    } 

    public void ErrorMsg() 
    { 
     List<ErrorMsgTemplate> resulterr = ppfcObj.getErrorMsgTemplate("ADMIN");    
    } 




    private void btnSave_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      if (cmbDivision.SelectedIndex == -1) //naray added 
      { 
       MessageBox.Show(resulterr[0].ERROR_MESSAGE_TEMPLATE.ToString() + "," + resulterr[0].SCREEN_NM.ToString(), "PPFC"); 
      } 
+1

возможного дубликат (HTTP [Что такого NullReferenceException и как это исправить?]: //stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – stakx

+2

Помимо того, что это дублирующий вопрос, следующее ваше заявление беспокоит меня: _ «Пожалуйста, исправьте ошибка. "_ Нет! Это * ваша * задача. Все, что мы делаем, это помочь вам понять проблему и как ее исправить, но люди из Stack Overflow не здесь, чтобы написать свой код для вас. Когда на ваш вопрос будет дан ответ, вам не следует иметь только лучший рабочий код; вы должны понимать, почему это работает. – stakx

+0

Я отлаживал и обнаружил, что значения resulterr становятся нулевыми после выхода из ErrorMsg(). Мне нужно ударить базу данных только один раз, но я должен использовать resulterr в нескольких местах на странице, где присутствует MessageBox. – Naraykln

ответ

0

Я нашел проблему. Я объявил глобальную переменную

public List<ErrorMsgTemplate> resulterr; 

и снова пересоздан в ErrorMsg():

public void ErrorMsg() 
{ 
    List<ErrorMsgTemplate> resulterr = ppfcObj.getErrorMsgTemplate("ADMIN");    
} 

Вместо этого используется:

public void ErrorMsg() 
{ 
    resulterr = ppfcObj.getErrorMsgTemplate("ADMIN");    
} 

Теперь я могу получить доступ к resulterr в btnsave случае.

0

Этой ошибка возникает, когда переменное значение приобретает пустым или пробел Вы можете отслеживать с помощью нуля или пространств, чтобы предотвратить эту ошибку

+0

В большинстве языков пусто и не пусто. – Panther

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