gpt4 book ai didi

c# - 使用未分配的局部变量

转载 作者:太空宇宙 更新时间:2023-11-03 17:56:01 26 4
gpt4 key购买 nike

当我尝试调试此代码(在C#WinForms中)时,它显示错误


  “ arrlist [i]”中的“使用未分配的局部变量”


由于我正在将其与数据库变量进行比较,因此无法初始化数组的大小。

这是代码:

if (count != 0)
{
OleDbCommand cmd1 = new OleDbCommand(
"select seat_no, booking_date, show_time "+
"from tickets "+
"where ticket_no = (select max(ticket_no) from tickets)", c);
OleDbDataReader oledb1 = cmd1.ExecuteReader();
oledb1.Read();
string retr_seats = oledb1.GetString(0);
char comma = ',';
string[] strarray = retr_seats.Split(comma);
int ticket_length = strarray.Length;
string[] arrlist;
int i = 0;
foreach(var control in this.Controls)
{
if(control is Label)
{
arrlist[i] = control.ToString();
i++;
}
}
for(var j=0;j<=ticket_length;j++)
{
for (var k = 0; k <= i-1; k++)
{
if (arrlist[k].Contains(strarray[j]))
{
MessageBox.Show(strarray[j]);
}
}
}
}


请帮我

最佳答案

您需要初始化变量arrlist。更改此行:

string[] arrlist;


对此:

string[] arrlist = new string[this.Controls.Count]; // Must be big enough.




或更妙的是,使用动态大小的容器,例如 List<string>

List<string> arrList = new List<string>();
foreach(var control in this.Controls)
{
if(control is Label)
{
arrlist.Add(control.ToString());
}
}




或使用LINQ直接获得结果:

string[] arrlist = this.Controls
.OfType<Label>()
.Select(control => control.ToString())
.ToArray();

关于c# - 使用未分配的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com