错误1使用未赋值的局部变量'报告'

本文关键字:局部变量 报告 赋值 错误 | 更新日期: 2023-09-27 18:15:53

我不明白为什么第一个"Reports"不工作

我不太确定该怎么做,我以前写过类似的代码,可以工作

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

错误1使用未赋值的局部变量'报告'

如果您得到"使用未分配的局部变量'Reports'",那么这意味着您正在使用Reports而没有首先初始化它。在代码中,您只需:

Transfers Reports;

定义了变量,但它没有引用任何实际对象,因此调用Reports.PlayerName将失败。您需要这样的内容:

Transfers Reports = new Transfers();

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

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

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