2013-05-29 63 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

相关问题