使用 C# 重写从按钮扩展的控件的“文本”属性
本文关键字:控件 属性 文本 扩展 重写 按钮 使用 | 更新日期: 2023-09-27 18:33:20
我在扩展标准 WebControls.Button 控件时遇到问题。我需要覆盖 text 属性,但我收到错误消息:
无法覆盖固有成员"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;
}
}
}
我该如何解决这个问题?
这是因为LinkButton
具有virtual
Text属性..而Button
则没有。
您可以使用new
完全隐藏基本功能:
public class IconButton : Button {
public new string Text {
// implementation
}
}
使用 new
将完全隐藏继承的成员。