0
我遇到了擴展標準WebControls.Button控件的問題。我需要重寫文本屬性,但我收到錯誤消息:使用C#覆蓋從按鈕擴展的控件的「文本」屬性
不能覆蓋inhereted成員「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;
}
}
}
我該如何解決這個問題?
'base.Text'會返回父母的'Text'屬性,還是會用它自己覆蓋它? –
它會按照您的期望運行。因爲在您的原始版本中,您只是將其用作底層繼承屬性的代理。 –
謝謝西蒙,這個工作很完美,現在你已經解釋了,這很有道理!將盡快接受答案:) – Dave