我在asp.net中工作,我对html和c#不太熟悉,因为教授在上课之前确实不会花费太多。.我确实知道它与我非常熟悉的java非常相似所以我不确定我的错误是什么
我有一个if事件的if语句,用于检查复选框列表的选定索引,以确保选择了正确的答案。它的工作原理是正确的,但是由于某种原因,无论何时选择第一个索引,它都会使它正确,我不理解。所以实际上我的问题是选择第一个索引会导致if语句出现问题
这是我用于按钮事件处理程序的代码。
if (DropDownList1.SelectedIndex.Equals(1)) {
LabelResult1.Text = "Question 1 Correct";
}
else {
LabelResult1.Text = "Question 1 Incorrect";
}
if (RadioButtonList1.SelectedIndex.Equals(1)) {
LabelResult2.Text = "Question 2 Correct";
}
else {
LabelResult2.Text = "Question 2 Incorrect";
}
if (CheckBoxList1.SelectedIndex.Equals(0&2&3)) {
LabelResult3.Text = "Question 3 Correct";
}
else {
LabelResult3.Text = "Question 3 Incorrect";
}
//write if statement to create image for fireworks
if(DropDownList1.SelectedIndex.Equals(1)&&RadioButtonList1.SelectedIndex.Equals(1)&&CheckBoxList1.SelectedIndex.Equals(0 & 2 & 3)) {
ImageFireworks.ImageUrl = "Images/giphy.gif";
}
我也有它,因此如果所有问题的回答正确,就会显示gif。与if语句相同,每次选择复选框的0索引时,都会出现相同的问题
答案 0 :(得分:3)
CheckBoxList1.SelectedIndex.Equals(0&2&3)
在索引= 0时将为true,因为0&2&3
为零。这是因为在c#中& operator
是按位AND。
这三个与二进制AND运算符结合在一起(就像您所做的那样)将得出0。
答案 1 :(得分:-1)
单个&
是按位AND运算符,因此0 & 2 & 3
的值为0,这使表达式的工作方式类似于SelectedIndex.Equals(0)
。为了检查多个选定的项目,您必须检查每个项目的.Selected
属性,例如:
CheckBoxList1.Items[0].Selected && CheckBoxList1.Items[2].Selected && CheckBoxList1.Items[3].Selected