使用数组列表和按钮进行可能的意外引用比较

本文关键字:意外 比较 引用 数组 列表 按钮 | 更新日期: 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])行上收到此错误。

使用数组列表和按钮进行可能的意外引用比较

您正在将objectstring进行比较。由于它们不是同一类型,C# 将比较它们的引用,这通常不是您想要的。(在这种情况下,结果将始终false

使用 List<string> 而不是 ArrayList 键入 hafiza[j] 的值。

(请注意,您必须在List<T>上使用Add而不是当前使用的数组分配)