希望是一个简单的问题
我需要序列化一个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;
}
}
答案 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)
{
}
}
您还可以在基类中实现无参数构造函数并使其受到保护。这样,除派生类之外没有人可以调用它。