使用数组列表和按钮进行可能的意外引用比较
本文关键字:意外 比较 引用 数组 列表 按钮 | 更新日期: 2023-09-27 18:37:09
ArrayList hafiza = new ArrayList();
string sql = "";
sql = "SELECT koltuk_adi FROM Koltuk";
SqlCommand cmd = new SqlCommand(sql, baglanti);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
for (int i = 0; i <= hafiza.Count; i++)
{
hafiza[i]=(dr["koltuk_adi"].ToString());
}
}
String btn ="";
for (int j=0;j<=hafiza.Count ;j++)
{
for (int i=1;i<70;i++)
{
btn = "button"+i;
if(this.Controls[btn].Text == hafiza[j])
{
this.Controls[btn].BackColor = Color.DarkRed;
this.Controls[btn].Enabled = false;
}
Possible unintended reference comparison; to get a value comparison, cast the right hand side to type 'string' array...
我在if(this.Controls[btn].Text == hafiza[j])
行上收到此错误。
您正在将object
与string
进行比较。由于它们不是同一类型,C# 将比较它们的引用,这通常不是您想要的。(在这种情况下,结果将始终false
)
使用 List<string>
而不是 ArrayList
键入 hafiza[j]
的值。
(请注意,您必须在List<T>
上使用Add
而不是当前使用的数组分配)