Tengo curiosidad por qué solo algunos controles System.Web.UI.WebControl
implementan ciertas interfaces cuando tienen las mismas propiedades de una interfaz.¿Por qué no todas las clases System.Web.UI.WebControl con propiedades de texto implementan ITextControl?
Por ejemplo, hay un montón de controles que tienen una propiedad de texto, pero sólo el apero siguiente ITextControl
:
- Etiqueta
- literal
- DataBoundLiteral
- cuadro de texto
- ListControl
(cuadro de texto y ListControl implementan realmente IEditableTextControl que implementa ITextControl)
TableCell, Botón, hipervínculo y otros no lo hacen así que tengo que escribir 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;
}
en lugar de esta
control.Text = value;
¿Fue esta una decisión de diseño o un descuido?
Buena pregunta. Creo que la diferencia está entre HtmlControl y un WebControl. Pero me encantaría escuchar más antecedentes sobre este ... – Sunny
@Sunny Puedo entender si uno es HtmlControl y el otro es WebControl, pero existen diferencias entre varios WebControls. – jrummell