【发布时间】:2019-12-30 12:26:40
【问题描述】:
所以我创建了一个列表(panelList)并插入了 10 个面板控件(已在 aspx 设计页面上创建)。但是,当我尝试检查 panelList[0] 是否与Panel1(这是我在 panelList 中添加的第一个面板),我返回 FALSE...知道为什么吗?这是我的代码
static List<Panel> panelList = new List<Panel>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
panelList.Add(Panel1);
panelList.Add(Panel2);
panelList.Add(Panel3);
panelList.Add(Panel4);
panelList.Add(Panel5);
panelList.Add(Panel6);
panelList.Add(Panel7);
panelList.Add(Panel8);
panelList.Add(Panel9);
panelList.Add(Panel10);
}
}
protected void AddQuestionButton_Click(object sender, EventArgs e)
{
Debug.WriteLine(panelList[0].Equals(Panel1));
// here i get returned false in the debug output
}
【问题讨论】:
-
在添加到列表和检查是否相等之间,您对 Panel1 做了什么?
-
Panel1来自 aspx 布局:这意味着在回发后(单击 AddQuestionButton)控件从表单数据中恢复,并且与添加到静态列表中的对象不同。Equals行为可能以不同的方式实现不同的对象引用。 -
@GertjanBrouwer 不,我只经历了一个循环,使所有面板不可见..
-
无论如何我可以让等式比较变为真@OlegBondarenko
-
@SandroRamirez 您可以比较
Id属性,它们对于每个 aspx 控件都是唯一的。