Почему не все классы System.Web.UI.WebControl со свойствами Text реализуют ITextControl?

Мне любопытно, почему только некоторые элементы управления System.Web.UI.WebControl реализуют определенные интерфейсы, когда у них одинаковые свойства интерфейса.

Например, существует множество элементов управления, обладающих свойством Text, но только следующий инструмент ITextControl:

  • Этикетка
  • Буквенный
  • DataBoundLiteral
  • TextBox
  • ListControl

(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

Я думаю, что он был разработан нормально, я не думаю, что это был надзор; это те элементы управления, где текст является основным направлением цели контроля. Я вижу вашу точку зрения, потому что было бы очень удобно иметь элементы управления, которые используют больше этих типов интерфейсов.