【发布时间】:2011-03-27 08:00:40
【问题描述】:
我刚刚遇到以下代码的“错误”。
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
}
}
错误是“单选按钮的东西”和“复选框的东西”都在为单选按钮运行。
当单步执行并查看 MSDN 时,错误现在很明显,RadioButton 继承自 CheckBox 而不是直接从 WebControl 继承,因此两个 if 语句都将返回 true。
我发布了这个问题,因为自从 1.0 处于 Beta 版以来我一直在 ASP.Net 中编码,这对我和我团队中的其他人来说完全是一个震惊。
虽然 RadioButton 确实具有 CheckBox 的所有功能,但我的“假设”是它会是一个完全不同的控件。
这显然“不是一个真正的问题”,更多的是一个讨论点,因此我以 CW 的身份发布。
【问题讨论】:
标签: asp.net inheritance checkbox radio-button