C# 列表中的控件与原始控件不相等
因此,我创建了一个listpanelList,并插入了10个面板控件,这些控件已经在aspx设计页面上创建。。但是,当我尝试检查panelList[0]是否与Panel1(我在panelList中添加的第一个面板)是同一个面板时,返回FALSE。。。知道为什么吗?这是我的密码 <>你应该考虑如何比较C中的2个对象, 有一些方法可以实现这一点 使生效 序列化两个对象,然后将它们作为字符串结果进行比较C# 列表中的控件与原始控件不相等,c#,asp.net,list,C#,Asp.net,List,因此,我创建了一个listpanelList,并插入了10个面板控件,这些控件已经在aspx设计页面上创建。。但是,当我尝试检查panelList[0]是否与Panel1(我在panelList中添加的第一个面板)是同一个面板时,返回FALSE。。。知道为什么吗?这是我的密码 你应该考虑如何比较C中的2个对象, 有一些方法可以实现这一点 使生效 序列化两个对象,然后将它们作为字符串结果进行比较 顺便说一句,链接对您很有帮助。在添加到列表和检查是否等于之间,您对Panel1所做的任何操作?Pane
顺便说一句,链接对您很有帮助。在添加到列表和检查是否等于之间,您对Panel1所做的任何操作?Panel1是从aspx布局中获得的:这意味着在回发后单击AddQuestionButton后,控件将从表单数据中恢复,并且它与添加到静态列表的对象不同。对于不同的对象引用,Equals行为可能以不同的方式实现。@GertjanBrouwer不,我只通过了一个循环,使所有面板都不可见。。我是否可以使Equals比较变为真@OlegBondarenko@SandroRamirez您可以比较Id属性,它们对于每个aspx控件都是唯一的。
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
}