【发布时间】:2018-03-14 08:07:56
【问题描述】:
我需要在基类构造函数之前执行派生类构造函数。 我正在附加在基类中使用需要在派生类中初始化的虚拟对象的代码。我们决定派生类中虚拟对象的类型,然后在我们拥有该对象的类型后为该对象分配值。 在这种情况下,如何在基类构造函数之前调用派生类构造函数。
public class BaseClass : UserControl, INotifyPropertyChanged
{
public Path ConnIn;
public Path ConnOut;
public virtual ObjectBase BaseObject { get; set; }
public void BaseClass(XmlElementConfig config)
{
this.BaseObject.Title = config.Title;
this.BaseObject.GroupID = config.GroupID;
}
}
public partial class DerivedClass : CanvasBase
{
private Audio_MonitorAction audio_objectAction;
public override ObjectBase BaseObject
{
get { return audio_objectAction; }
set
{
audio_objectAction = (Audio_MonitorAction)value;
NotifyPropertyChanged();
}
}
public DerivedClass(XmlElementConfig config) : base(config)
{
InitializeComponent();
audio_objectAction = new Audio_MonitorAction(createGuid);
}
}
【问题讨论】:
-
我也有同样的问题。您应该如何在基本构造函数中使用虚拟方法,为什么无论如何都要实现这个废话错误。在C++中你不需要先调用基础构造函数,为什么你需要像javascript这样一种耦合非常松散的语言。
标签: c# wpf inheritance constructor overriding