我從某處獲取類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