2010-04-09 2 views
11

Мне любопытно, почему только некоторые команды 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; 

Было ли это дизайнерским решением или надзором?

+0

Хороший вопрос. Я думаю, что разница между HtmlControl и WebControl. Но хотелось бы услышать больше информации об этом ... – Sunny

+0

@Sunny Я могу понять, является ли один из HtmlControl, а другой - WebControl, но существуют различия между различными WebControls. – jrummell

ответ

1

Я думаю, что это было спроектировано нормально, я не думаю, что это был надзор; это те элементы управления, где текст является основным направлением цели контроля. Я вижу вашу точку зрения, потому что было бы очень удобно иметь элементы управления, которые используют больше этих типов интерфейсов.

+0

Это имеет смысл. – jrummell

Смежные вопросы