我从某处获取类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个物业。
似乎更像你想要一个索引呢?它看起来像你想通过键访问整型数组中的值 - 你能解释一下用例吗?一旦你完成了这一次,你已经做到了 - 你计划与其他物体一起做这一百万次? – Charleh
“prop1”,“prop2”,“prop3”和“prop4”的名字都很差。它们不代表相同的类型,也不以相同的方式使用。因此,如果您给他们的名称更清楚地表明了它们的用途,那将会非常有帮助。 –
我想添加索引键不索引。 – User1551892