Я простирающиеся TextBox WebControl работать как своего рода «DateTextBox», который выставляет его значение как свойство (DateValue
) в коде-за:Расширение ASP.NET WebControls: Как эффективно скрыть общие свойства
public sealed class DateTextBox : TextBox
{
public DateTime ?DateValue
{
/* ToDateFromUserInterface() and ToUserInterfaceString() are both
extension methods */
get
{
return
(
String.IsNullOrEmpty(Text) ?
new DateTime?() :
Text.ToDateFromUserInterface()
);
}
set
{
if (value != null) Text = ((DateTime)value).ToUserInterfaceString();
}
}
}
Учитывая тот факт, что этот элемент управления должен использоваться только с датами, нет причин для его наследования свойства Text
из его патента.
Есть ли способ, чтобы скрыть это .. Кроме реализации NotImplementedException
, например так:
new public String Text
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
}
Скрывает ли это свойства от Intellisense в представлении кода? – roosteronacid
Пока класс, определенный в разных сборках, вы не должны видеть свойство в Intellisense. Но вы можете легко протестировать его. –