2011-07-14 42 views
0

編譯器正在讀取錯誤:使用未分配的局部變量'fileData'。使用未分配的局部變量'fileData'?

我已經搜查,但沒有我嘗試解決我的問題。

private ScrPrnData ParseTemperatureFileLine(string sLine) 
    { 
     char[] delimiter = { '\t' }; 
     string[] elements = sLine.Split(delimiter, 200); 

     ScrPrnData fileData; 

     fileData.dTempZone1 = double.Parse(elements[0].Trim()); 
     fileData.dTempZone2 = double.Parse(elements[1].Trim()); 
     fileData.dTempZone3 = double.Parse(elements[2].Trim()); 
     fileData.dTempZone4 = double.Parse(elements[3].Trim()); 

     return fileData; 
    } 
+0

哪條線顯示有錯誤? – Ram

+1

'ScrPrnData fileData = new ScrPrnData();'? 'return fileData'上的 –

+0

錯誤 – TheRealDK

回答

2
private ScrPrnData ParseTemperatureFileLine(string sLine) 
{ 
    ... 
    ScrPrnData fileData = new ScrPrnData(); 
    ... 
} 
+0

梅爾頓我試過這個,並沒有工作。 – TheRealDK

+0

@TheRealDK - 不可信。 –

+0

@Ritch_Melton - 真實故事 – TheRealDK

1

你必須創建該類型的實際對象:沒有與某個值初始化它

ScrPrnData fileData = new ScrPrnData(); 
0

您使用FILEDATA。請嘗試:

ScrPrnData fileData = new ScrPrnData(); 

或其他相關內容。

0

您需要實例化它。

ScrPrnData fileData; = new ScrPrnData(); 
1

你永遠初始化fileData和編譯器節省您在運行時有明顯的NullReferenceException。

ScrPrnData fileData; // <- need to initialize this here. 

// fileData will always be null here and throw an Exception 
// the compiler knows this and is saving you the headache 
fileData.dTempZone1 = double.Parse(elements[0].Trim()); 
+0

相信這樣你必須解釋如何解決它,因爲你告訴他錯誤,只是ScrPrnData fileData = new ScrPrnData():D –

+0

這一切都取決於ScrPrnData是什麼。例如,如果它是一個抽象類或接口,那麼「new ScrPrnData()」將不起作用。 –