Jestem ciekawy, dlaczego tylko niektóre kontrolki System.Web.UI.WebControl
implementują pewne interfejsy, gdy mają te same właściwości interfejsu.Dlaczego nie wszystkie klasy System.Web.UI.WebControl z właściwościami tekstowymi implementują ITextControl?
Na przykład, istnieje wiele kontroli, które mają właściwość Text ale tylko co następuje wdrażają ITextControl
:
- Label
- Dosłowne
- DataBoundLiteral
- TextBox
- ListControl
(TextBox i ListControl rzeczywiście wdrożyć IEditableTextControl który implementuje ITextControl)
TableCell, Button, HyperLink, a inni nie, więc muszę napisać kod jak ten
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
zamiast tego
control.Text = value;
Czy to była decyzja projektowa, czy przeoczenie?
Dobre pytanie. Myślę, że różnica między HtmlControl i WebControl. Ale chciałbym usłyszeć więcej informacji na ten temat ... – Sunny
@Sunny Mogę zrozumieć, jeśli jeden jest HtmlControl, a drugi WebControl, ale istnieją różnice między różnymi WebControls. – jrummell