我很好奇为什么只有一些 System.Web.UI.WebControl
控件在具有相同接口(interface)属性时实现某些接口(interface)。
例如,有很多控件具有 Text 属性,但只有以下实现 ITextControl
:
- 标签
- 文字
- 数据绑定(bind)文字
- 文本框
- 列表控件
(TextBox和ListControl实际上实现了IEditableTextControl,而IEditableTextControl又实现了ITextControl)
TableCell、Button、HyperLink 等都没有,所以我必须编写这样的代码
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
而不是这个
control.Text = value;
这是设计决定还是疏忽?
最佳答案
我认为它的设计还不错,我不认为这是一个疏忽;在这些控件中,文本是控件用途的主要焦点。我确实明白您的观点,因为让控件利用更多此类接口(interface)会非常方便。
关于asp.net - 为什么不是所有具有 Text 属性的 System.Web.UI.WebControl 类都实现 ITextControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609066/