我正在从某个地方获取 AAA 类的对象,我想在该对象中添加更多信息。所以,我正在创建一个从 AAA 派生的新类 BBB。BBB 类有额外的字段字典。我在派生类构造函数中填充该字典,该构造函数采用 AAA 类对象和我想用作字典键的项数组,而该字典的值是 AAA 类对象字段的元素。我尝试在示例代码中创建类似的场景:
void Main(){
A obj = new A () ;
obj.prop1 = new int [] {5 ,10, 15} ;
obj.prop2 = "Hello" ;
obj.prop3 = "World" ;
// obj.Dump () ;
B obj2 = new B (new int [] {1,2,3}, obj) ;
// obj2.Dump () ;
}
// Define other methods and classes here
public class A {
public int [] prop1 ;
public string prop2 ;
public string prop3 ;
}
public class B : A {
public Dictionary <int, int> prop4 ;
public B (int [] keys, A a) {
prop4 = new Dictionary <int, int> () ;
if (keys.Length == a.prop1.Length ) {
for (int i = 0 ; i < keys.Length ; i++ ) {
prop4.Add (keys[i], a.prop1[i]) ;
}
// is there a way to obsolete below lines of code???
this.prop1 = a.prop1 ;
this.prop2 = a.prop2 ;
this.prop3 = a.prop3 ;
}
else {
throw new Exception ("something wrong") ;
}
}
}
在派生类构造函数中,我手动填充属性,我不想这样做。有没有另一种方法来做到这一点。我的实际课程中有 20 多个属性。