Asp.net

為什麼不是所有具有 Text 屬性的 System.Web.UI.WebControl 類都實現 ITextControl?

  • April 9, 2010

我很好奇為什麼只有某些System.Web.UI.WebControl控制項具有相同的介面屬性時才實現某些介面。

例如,有很多控制項具有 Text 屬性,但只有以下實現ITextControl

  • 標籤
  • 文字
  • 數據綁定字面量
  • 文本框
  • 列表控制項

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

這是設計決定還是疏忽?

我認為它設計得很好,我不認為這是一個疏忽;這些是文本是控制項目的的主要焦點的控制項。我確實明白你的意思,因為讓控制項使用更多這些類型的界面會非常方便。

引用自:https://stackoverflow.com/questions/2609066