Por que nem todas as classes System.Web.UI.WebControl com propriedades Text implementam ITextControl?
Estou curioso por que apenas algunsSystem.Web.UI.WebControl
Os controles implementam determinadas interfaces quando elas têm as mesmas propriedades de uma interface.
Por exemplo, há muitos controles que possuem uma propriedade Text, mas apenas o seguinte implementaITextControl
:
(TextBox e ListControl realmente implementam IEditableTextControl, que implementa ITextControl)
TableCell, Button, HyperLink e outros não, então eu tenho que escrever um código como este
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
em vez disso
control.Text = value;
Foi uma decisão de projeto ou uma supervisão?