c#继承类的无参数构造函数

本文关键字:参数 构造函数 继承 | 更新日期: 2023-09-27 18:05:58

希望是一个简单的问题

我需要序列化一个继承类,在这个例子中iProperty继承自PropertyDescriptor。为了实现这个iProperty需要一个没有参数的构造函数,而基类没有这样的构造函数,如果我试图添加一个构造函数,我被告知基类不包含一个接受0个参数的方法,这是正确的。我该如何解决这个问题呢?

谢谢。

例子
   public class iProperty : PropertyDescriptor
    {
        private string propName;
        private object propValue;
        // Need Parameterless Construtor ?
        public iProperty(string pName, object pValue)
            : base(pName, new Attribute[] { })
        {
            propName = pName;
            propValue = pValue;
        }
    }

c#继承类的无参数构造函数

public class iProperty : PropertyDescriptor
{
    private string propName;
    private object propValue;
    // Need Parameterless Construtor ?
    public iProperty()
        : base("placeholder", new Attribute[] { })
    {
    }
    public iProperty(string pName, object pValue)
        : base(pName, new Attribute[] { })
    {
        propName = pName;
        propValue = pValue;
    }
}

您可以创建一个无参数的构造函数,但是无论如何您必须调用一个基类构造函数

public class iProperty : PropertyDescriptor
{
    public iProperty()
        : base(someDefaults)
    {
    }
}

还可以在基类中实现无参数构造函数并使其受保护。这样除了派生类之外,没有人可以调用它。