Мне любопытно почему только некоторые System.Web.UI.WebControl
средства управления реализуют определенные интерфейсы, когда у них есть те же свойства интерфейса.
Например, существует много средств управления, которые имеют текстовое свойство, но только следующую реализацию ITextControl
:
(TextBox и ListControl на самом деле реализуют IEditableTextControl, который реализует ITextControl),
TableCell, Кнопка, 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;
Действительно ли это было проектным решением или контролем?
Я думаю, что это было хорошо спроектировано, я не думаю, что это была оплошность; это те элементы управления, в которых текст является основным объектом назначения элемента управления. Я понимаю вашу точку зрения, потому что было бы очень удобно, если бы элементы управления использовали больше этих типов интерфейсов.