【问题标题】:Why don't all System.Web.UI.WebControl classes with Text properties implement ITextControl?为什么不是所有具有 Text 属性的 System.Web.UI.WebControl 类都实现 ITextControl?
【发布时间】:2010-04-09 16:19:00
【问题描述】:

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

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

  • 标签
  • 文字
  • DataBoundLiteral
  • 文本框
  • 列表控件

(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;

这是设计决定还是疏忽?

【问题讨论】:

  • 好问题。我认为区别在于 HtmlControl 和 WebControl。但很想听听更多关于这个的背景......
  • @Sunny 一个是HtmlControl,一个是WebControl我可以理解,但是各种WebControl之间还是有区别的。

标签: asp.net web-controls


【解决方案1】:

我认为它设计得很好,我不认为这是一个疏忽;这些是文本是控件目的的主要焦点的控件。我确实明白你的意思,因为让控件使用更多这些类型的界面会非常方便。

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多