Я только что столкнулся с "ошибкой" со следующим кодом.
foreach(Control control in controls)
{
if(control is TextBox)
{
//Do textbox stuff
}
if(control is CheckBox)
{
//Do checkbox stuff
}
if(control is RadioButton)
{
//Do radiobutton stuff
}
}
Ошибка заключалась в том, что «RadioButton» и «Checkbox вещи» оба работали для RadioButton.
При просмотре MSDN ошибка теперь очевидна: RadioButton наследует от CheckBox, а не от WebControl напрямую, поэтому оба оператора возвращают true.
Я публикую этот вопрос, так как я кодирую в ASP.Net с тех пор, как 1.0 была в бета-версии, и это является полным шоком для меня и всех остальных в моей команде.
Хотя это правда, что RadioButton обладает всеми функциями CheckBox, мое «предположение» заключалось в том, что это был бы совершенно другой элемент управления.
Это, очевидно, "не настоящий вопрос", а скорее вопрос для обсуждения, поэтому я публикуюсь как CW.