继承类的C#Parameterless构造函数

时间:2015-07-31 15:32:02

标签: c# inheritance constructor

希望是一个简单的问题

我需要序列化一个inherted类,在这个例子中,iProperty继承自'PropertyDescriptor'。为了实现这个,iProperty需要一个参数较少的构造函数,而基类没有这样的构造函数,如果我试图添加一个construtor,我被告知基类不包含一个方法,该方法采用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;

        }
    }

2 个答案:

答案 0 :(得分:6)

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;

    }
}

答案 1 :(得分:2)

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

public class iProperty : PropertyDescriptor
{

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

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