代码之家  ›  专栏  ›  技术社区  ›  jrummell

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

  •  11
  • jrummell  · 技术社区  · 16 年前

    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;
    

    1 回复  |  直到 16 年前
        1
  •  1
  •   Brian Mains    16 年前

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

    推荐文章