2013-05-29 74 views
0

我不能得到之所以第一個「報告」心不是工作錯誤使用未分配的局部變量的「報告」

我不是entriely一定要做到前香港專業教育學院寫類似的代碼是什麼和工作

Transfers Reports; 

for (int i = 0; i < TransferList.Count; i++) 
{ 
    Reports.PlayerName = TransferList[i].PlayerName; 
    Reports.OldTeam = TransferList[i].OldTeam; 
    Reports.NewTeam = TransferList[i].NewTeam; 
    Reports.YearBought = TransferList[i].YearBought; 
    Reports.YearSold = TransferList[i].YearSold; 
    Reports.SellingPrice = TransferList[i].SellingPrice; 
    Reports.WageGiven = TransferList[i].WageGiven; 
    Reports.OriginalPrice = TransferList[i].OriginalPrice; 
    Reports.OriginalWage = TransferList[i].OriginalWage; 
    Reports.Height = TransferList[i].Height; 
    Reports.Age = TransferList[i].Age; 
    Reports.BirthDate = TransferList[i].BirthDate; 
    Reports.Nationality = TransferList[i].Nationality; 
    Reports.TypeofMove = TransfersList[i].TypeofMove; 

    if (Reports.TypeofMove == "Transfer") 
    { 
     TransfersList.Add(Reports); 
    } 

    if (Reports.TypeofMove == "Free Transfer") 
    { 
     FreeTransfersList.Add(Reports); 
    } 

    if (Reports.TypeofMove == "Loan") 
    { 
     TransfersList.Add(Reports); 
    } 

回答

2

如果您得到「使用未分配的本地變量」報告「」,那就意味着您沒有首先初始化它就使用了Reports。在你的代碼,你剛纔:

Transfers Reports; 

這個定義變量,但它不引用任何實際的對象,因此調用Reports.PlayerName會失敗。你需要的東西,如:

Transfers Reports = new Transfers(); 

Transfers類型可能沒有一個無參數的構造函數,所以在這種情況下,你需要以不同的方式創建它(這是很難說的怎麼樣,不知道的細節)。

另外,通過查看您的示例,我認爲您應該在for循環內移動變量聲明(和初始化),因爲您要爲TransferList中的每個項目創建一個新報告。但是,您不應修改您正在迭代的集合,因此您可能首先需要複製TransferList。 (您確定要遍歷集合,然後在迭代過程中添加新的項目呢?)

+0

我如何intialized列表? – user2430661

+0

甜蜜的工作 – user2430661

0

嘗試更換Transfers Reports;Transfers Reports = new Transfers();(或任何構造的需求)

+0

甜蜜的工作 – user2430661

相關問題