为什么不具有Text属性的所有System.Web.UI.WebControl类都实现ITextControl?

时间:2010-04-09 16:19:01

标签: asp.net web-controls

我很好奇为什么只有一些System.Web.UI.WebControl控件在具有相同的接口属性时才实现某些接口。

例如,有很多控件都有Text属性,但只有以下工具ITextControl

  • 标签
  • 立即
  • DataBoundLiteral
  • 文本框
  • ListControl的

(TextBox和ListControl实际上实现了实现ITextControl的IEditableTextControl)

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;

这是设计决定还是疏忽?

1 个答案:

答案 0 :(得分:1)

我认为它设计得很好,我不认为这是一种疏忽;那些是文本是控件目的的主要焦点的控件。我确实看到了你的观点,因为让控件利用更多这些类型的接口会非常方便。