是否有可能做一些這樣的:繼承已經實例化的基本對象
public class ChildClass : BaseClass
{
public ChildClass(BaseClass o)
{
base = o;
}
}
基本上,我希望有一個透明的方式來包裝的其他功能裏面的基類。我想到的一個例子是自定義設置提供程序,它透明地審查通過它的設置。
public class SettingsAuditor : SettingsProvider
{
public SettingsAuditor(SettingsProvider o)
{
base = o;
}
public override void SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection propvals)
{
// Log the property change to a file
base.SetPropertyValues(context, propvals);
}
}
然後,我可以做到以下幾點:
mySettingsProvider = new SettingsAuditor(mySettingsProvider);
所有更改會去通過重寫SetPropertyValues
傳遞給原來的對象之前。
我可以用一個私人SettingsProvider
成員,但後來我要麼無法從SettingsProvider
繼承,或有一個完整的SettingsProvider
(base
)不被使用的。
我正在使用C#4.0和.Net 4.0。
所以,你基本上想要一個透明的方式來包裝一個類,並允許所有的方法通過新的類重定向,而無需編寫自定義方法?您可能想要查看AOP或面向方面的編程http://en.wikipedia。org/wiki/Aspect-oriented_programming – 2010-08-05 14:10:31
有點,如果我正確理解你的話。 – dlras2 2010-08-05 14:13:56