Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误 ;1和x9;使用未分配的局部变量';报告';_C#_Global Variables_Overloading - Fatal编程技术网

C# 错误 ;1和x9;使用未分配的局部变量';报告';

C# 错误 ;1和x9;使用未分配的局部变量';报告';,c#,global-variables,overloading,C#,Global Variables,Overloading,我不明白为什么第一批“报告”不起作用 我不太确定该怎么办我以前写过类似的代码,这也行得通 Transfers Reports; for (int i = 0; i < TransferList.Count; i++) { Reports.PlayerName = TransferList[i].PlayerName; Reports.OldTeam = TransferList[i].OldTeam; Reports.NewTeam = TransferList[

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

我不太确定该怎么办我以前写过类似的代码,这也行得通

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);
    }
传输报告;
for(int i=0;i
如果您得到“使用未分配的局部变量‘报告’”,则这意味着您使用的是
报告
,而无需先对其进行初始化。在您的代码中,您只有:

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

Transfers Reports = new Transfers();
Transfers
类型可能没有无参数的构造函数,因此在这种情况下,您需要以不同的方式创建它(在不了解详细信息的情况下,很难说如何创建)


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

尝试将
传输报告;
替换为
传输报告=新传输();
(或构造函数需要的任何内容)

如何初始化列表?