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
。(是否确实要在集合上迭代,然后在迭代过程中添加新项?尝试将传输报告;
替换为传输报告=新传输();
(或构造函数需要的任何内容)如何初始化列表?