Ich bin neugierig, warum nur einige System.Web.UI.WebControl
Steuerelemente bestimmte Schnittstellen implementieren, wenn sie die gleichen Eigenschaften einer Schnittstelle haben.Warum implementieren nicht alle System.Web.UI.WebControl-Klassen mit Texteigenschaften ITextControl?
Zum Beispiel gibt es viele Kontrollen, die eine Text-Eigenschaft haben, aber erst nach der Umsetzung ITextControl
:
- Label-
- Wörtliche
- DataBoundLiteral
- TextBox
- List
(TextBox und List tatsächlich IEditableTextControl implementieren, die ITextControl implementiert)
Tablecell, Knopf, HyperLink und andere nicht so habe ich Code zu schreiben, wie diese
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
statt dessen
control.Text = value;
War das eine Designentscheidung oder ein Versehen?
Gute Frage. Ich denke der Unterschied liegt zwischen HtmlControl & einem WebControl. Aber würde gerne mehr Hintergrund zu diesem Thema hören ... – Sunny
@Sunny Ich kann verstehen, wenn man HtmlControl und das andere ist WebControl, aber es gibt Unterschiede zwischen verschiedenen WebControls. – jrummell