0

我不明白为什么第一个“报告”不起作用

我不确定该怎么做我之前写过类似的代码并且有效

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);
    }
4

2 回答 2

2

如果你得到"Use of unassigned local variable 'Reports'",那意味着你在使用Reports时没有先初始化它。在您的代码中,您只需:

Transfers Reports;

这定义了变量,但它没有引用任何实际对象,因此调用Reports.PlayerName会失败。你需要类似的东西:

Transfers Reports = new Transfers();

Transfers类型可能没有无参数构造函数,因此在这种情况下,您需要以不同的方式创建它(很难说如何创建,不知道细节)。

另外,通过查看您的示例,我认为您可能应该在for循环内移动变量声明(和初始化),因为您正在为TransferList. 但是,您不应该修改您正在迭代的集合,因此您可能首先需要复制TransferList. (您确定要迭代一个集合,然后在迭代期间向其中添加新项目吗?)

于 2013-05-29T01:21:03.157 回答
0

尝试替换Transfers Reports;Transfers Reports = new Transfers();(或构造函数需要的任何内容)

于 2013-05-29T01:22:14.533 回答