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

标签 asp.net web-controls

我很好奇为什么只有一些 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/

相关文章:

javascript - 覆盖正文区域的垂直侧边菜单

php - ASP.NET 与 PHP 相比如何?

asp.net - 如何防止执行特定的自定义操作过滤器

asp.net - 如何在 asp.net mvc 2 中创建饼图

asp.net - MVP 模式和 session 值

c# - 为什么这个 .NET Core 包与我的 PCL 不兼容?

c# - 从母版页获取列表项

ASP.NET CheckBoxList 数据绑定(bind)问题

python - 如何继承第三方模块的 Controller 来定制 Odoo 12?