我正在使用SDK方法返回该SDK的原生模型。
在我的代码中,我想为我的基类添加一些额外的属性。
示例:
public class BaseClass {
public string Prop1 {get; set;}
}
public class ChildClass : BaseClass {
public string Prop2 { get; set; }
}
BaseeClass baseClassObject = SDK.Method1();
ChildClass child = new ChildClass(); <- Populate this with baseClassOjbect properties.
继承是最好的吗/最有效率?如果是这样,我如何使用基类的属性实例化子对象?
我可以使用BaseClass的属性创建一个没有继承的新类,然后创建一些额外的属性(不使用继承)但我只是想知道是否有更好的“C#”用于实现这一目标?
答案 0 :(得分:4)
考虑将基础对象传递给子项并复制所需的属性
public class BaseClass {
public string Prop1 {get; set;}
}
public class ChildClass : BaseClass {
public ChildClass() : base() {}
public ChildClass(BaseClass baseClassObject) : base() {
this.Prop1 = baseClassObject.Prop1;
}
public string Prop2 { get; set; }
}
所以现在可以像这样初始化子类
BaseeClass baseClassObject = SDK.Method1();
ChildClass child = new ChildClass(baseClassObject) {
Prop2 = "Some value"
};
并填充baseClassOjbect
个属性。