Asp.net 为什么不';是否所有具有文本属性的System.Web.UI.WebControl类都实现ITextControl?

Asp.net 为什么不';是否所有具有文本属性的System.Web.UI.WebControl类都实现ITextControl?,asp.net,web-controls,Asp.net,Web Controls,我很好奇为什么只有一些System.Web.UI.WebControl控件在具有相同接口属性的情况下实现某些接口 例如,有很多控件具有文本属性,但只有以下实现ITextControl: 标签 文字的 数据边界文字 文本框 列表控件 (TextBox和ListControl实际上实现了IEditableTextControl,后者实现了ITextControl) TableCell、Button、HyperLink和其他都没有,所以我必须这样编写代码 ITextControl textCont

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

例如,有很多控件具有文本属性,但只有以下实现
ITextControl

  • 标签
  • 文字的
  • 数据边界文字
  • 文本框
  • 列表控件
(TextBox和ListControl实际上实现了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;

这是一个设计决定还是一个疏忽?

我认为它是设计好的,我不认为它是疏忽;这些是控件,其中文本是控件目的的主要焦点。我确实明白你的观点,因为让控件使用更多此类接口将非常方便。

问得好。我认为HtmlControl和WebControl之间的区别。但是我很想听到更多关于这个的背景…@Sunny我能理解一个是HtmlControl,另一个是WebControl,但是不同的WebControl之间有区别。