2014-03-25 217 views
-3

我試圖打印對象(學生) 的屬性之一,但是是運行錯誤(對象引用未設置爲對象的實例) 能有人幫助我,請對象引用未設置爲對象錯誤實例c#

while (rdStd.Read()) 
{ 

    arry[counter] = new Student(Convert.ToDouble(rdStd.GetValue(0)), Convert.ToDouble(rdStd.GetValue(1)), Convert.ToDouble(rdStd.GetValue(2))); 
    counter++; 
    TextBox3.Text += arry[counter].getlon() +"" ; //here is the error 
} 
+1

什麼是'getlon'方法?你調試了你的代碼嗎? http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it –

+1

你認爲,也許你想等待+2,直到第二次作業後? –

+0

瞭解如何在Visual Studio中使用調試器 - 您可以非常快速地自行解決此類問題,並且不難 –

回答

3

您訪問數組元素之前增加計數器:

arry[counter] = new ... 
counter++; 
arry[counter] == null 

交換櫃檯:

arry[counter] = new ... 
TextBox3.Text += arry[counter]... 
counter++; 

您可以通過在代碼中放置一個斷點並逐步完成此操作來找到它。

+0

是的,現在它正在運行。非常感謝 – user3415707

+0

@ user3415707您應該單擊左側的複選標記如果它解決了你的問題的答案。 – tnw

1

你在做你的counter++我覺得太早了。

該代碼添加一個計數器。所以當你想從1開始時,這是正確的代碼。否則,將它移動到TextBox3.Text以下。

while (rdStd.Read()) 
{ 
    arry[counter] = new Student(Convert.ToDouble(rdStd.GetValue(0)), Convert.ToDouble(rdStd.GetValue(1)), Convert.ToDouble(rdStd.GetValue(2))); 
    TextBox3.Text += arry[counter].getlon() +"" ; //here is the error 

    counter++; 
} 
1

問題可能是您在訪問對象之前遞增計數器。

arry[counter] = new Student(...); 
counter++; // the index gets incremented 
TextBox3.Text += arry[counter].getlon() +""; // you are accessing an element not defined yet 

它可能應該是:

arry[counter] = new Student(...); 
TextBox3.Text += arry[counter].getlon() +""; 
counter++; 
相關問題