Можно ли сделать что-то вроде следующего:
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.