我可能會在這裏離開,但我想我回想起有一種方法可以擴展現有類並覆蓋其現有功能。c#類擴展器
例如,有沒有辦法讓LinkButton和擴展它來公開一個新的方法或屬性?有沒有辦法來覆蓋和現有的方法/財產?像NavigateURL一樣?
我不是在談論子類,我正在談論擴展。我在這裏?
謝謝
我可能會在這裏離開,但我想我回想起有一種方法可以擴展現有類並覆蓋其現有功能。c#類擴展器
例如,有沒有辦法讓LinkButton和擴展它來公開一個新的方法或屬性?有沒有辦法來覆蓋和現有的方法/財產?像NavigateURL一樣?
我不是在談論子類,我正在談論擴展。我在這裏?
謝謝
public static class Extensions {
public static void NavigateURL(this LinkButton lb, string url) {
// do something
}
}
每個LinkButton的你的項目將有這個方法現在(沒有第一個參數)。第一個參數使用前綴「這個」,並且是要擴展,其餘的都是方法的參數類型的...
這正是我所期待的!叫什麼方法?對象擴展? – BoredOfBinary 2011-04-21 19:24:01
它被稱爲「擴展方法」 – 2011-04-21 19:33:05
聽起來像一個簡單的繼承類
public class MyLinkButton : LinkButton
{
//you can then override any method/property (intellisense will guide you)
public override bool Enabled
{
get
{
return base.Enabled;
}
set
{
base.Enabled = value;
}
}
}
據我所知,你可以只覆蓋基類中的虛擬,抽象或已重寫的方法/屬性。
你甚至可以用'new'關鍵字來做壞事重新聲明方法。對於簡單的事情,例如添加一個方法來添加一個額外的類是過度勞累,並且可能擴展方法更適合,當需要修改行爲時,當然是。 – 2011-04-21 19:36:04
我會做一個繼承你想修改的類,然後覆蓋你感興趣的內容 – BlackBear 2011-04-21 18:52:56