Переопределение свойства "Text" элемента управления, расширенного от Button с использованием C#
У меня проблема с расширением стандартного элемента управления WebControls.Button. Мне нужно переопределить свойство текста, но я получаю сообщение об ошибке:
не может переопределить встроенный член "System.Web.UI.WebControls.Button.Text.get", поскольку он не помечен как виртуальный, абстрактный или переопределенный
Я использовал следующий код для LinkButton, и он работал отлично:
public class IconLinkButton : LinkButton
{
private string _icon = "";
public string Icon
{
get
{
return _icon;
}
set
{
_icon = value;
}
}
public override string Text
{
get
{
return "<i class=\""+Icon+"\"></i> " + base.Text;
}
set
{
base.Text = value;
}
}
}
Однако, делая то же самое для стандартной кнопки, вы получаете ошибку, описанную выше.
public class IconButton : Button
{
private string _icon = "";
public string Icon
{
get
{
return _icon;
}
set
{
_icon = value;
}
}
public virtual string Text
{
get
{
return "<i class=\"" + Icon + "\"></i> " + base.Text;
}
set
{
base.Text = value;
}
}
}
Как я могу это исправить?
1 ответ
Решение
Это потому что LinkButton
имеет virtual
Текстовое свойство.. пока Button
не.
Вы можете полностью скрыть базовую функциональность, используя new
:
public class IconButton : Button {
public new string Text {
// implementation
}
}
С помощью new
полностью скрывает унаследованный член