2014-11-20 77 views
0

我正在幫助將VB代碼轉換爲C#。在C#代碼中,我有一個錯誤,說我的一個變量是未分配的。當我右鍵單擊(在Visual Studios 2013中)並單擊轉到定義時,它將我帶到它的聲明中,它明確指定爲null。我甚至試圖將它分配給除了null之外的其他東西。爲什麼我的變量在分配時說它是未分配的?

下面是聲明,它被設置爲空:

DataSet set5 = new DataSet(); 
set5 = null; 

這裏是它被調用,並在那裏我得到的錯誤:

try 
{ 
    wires.grdInser.DataSource = set5.Tables[0];//Being called here 
} catch (Exception exception92) 
{ 
    ProjectData.SetProjectError(exception92); 
    Exception exception46 = exception92; 
    ProjectData.ClearProjectError(); 
} 

有一堆代碼在這兩段代碼之間,但我不認爲變量被調用的範圍是一個問題,因爲「轉到定義」將我直接帶到定義中。問題可能是因爲它在try/catch語句中嗎?任何幫助將不勝感激。

+0

set5變量爲空,因此它不包含Tables [0]。 – 2014-11-20 18:55:04

+0

@PhillipXT但我已經嘗試將其設置爲代碼中其他DataSet變量已設置爲的東西,但仍然收到相同的錯誤。 – 2014-11-20 19:02:39

回答

1

試試這個,只是爲了擺脫錯誤的,那麼你可以計算出你需要從那裏做什麼:

DataSet set5 = new DataSet(); 
DataTable x = new DataTable(); 
set5.Tables.Add(x); 

擺脫set5 = null聲明。

現在你的其他功能應該能夠看到Tables[0]

+0

同樣的錯誤仍然彈出。當我把這行:'wires.grdInser.DataSource = set5.Tables [0];'根據你的建議,它不會給出錯誤。 – 2014-11-20 19:12:01

+1

在線'wires.grdInser.DataSource = set5.Tables [0];'上放置一個斷點,檢查該行的哪一部分有錯誤,並確保每個變量的值都是您期望它們的值。你的代碼中可能有另一部分正在改變某些東西 - 很難知道沒有看到整個事情。 – 2014-11-20 19:15:21

+0

這些碎片之間的代碼段超過4,000行,所以它絕對有可能是這種情況。我從來沒有被教過如何調試,我仍然對編程很陌生,但是當程序由於編譯錯誤而不能執行時可以調試嗎?當我在運行編譯的程序時到達那部分代碼時,我的印象是斷點只會停止程序。 – 2014-11-20 19:26:57

相關問題