Мне любопытно, почему только некоторые команды System.Web.UI.WebControl
реализуют определенные интерфейсы, когда они имеют одинаковые свойства интерфейса.Почему не все классы System.Web.UI.WebControl со свойствами Text реализуют ITextControl?
Например, есть много элементов управления, которые имеют свойство Text, но только следующие реализации ITextControl
:
- Этикетка
- Буквальное
- DataBoundLiteral
- TextBox
- ListControl
(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;
Было ли это дизайнерским решением или надзором?
Хороший вопрос. Я думаю, что разница между HtmlControl и WebControl. Но хотелось бы услышать больше информации об этом ... – Sunny
@Sunny Я могу понять, является ли один из HtmlControl, а другой - WebControl, но существуют различия между различными WebControls. – jrummell