2017-04-10 53 views
1

我已將對象列表定義爲List<NewLayerCounterMethod> NewLayer = new List<NewLayerCounterMethod>();,其中NewLayerCounterMethod類中的每個對象都有四個屬性,例如:VehicleType, VehicleCounter,Counter,Updating將列表中的對象複製到同一列表中的另一個對象中

對象NewLayer的數量是10,我想NewLayer[7]複製到NewLayer[5]例如,如果NewLayer[7]改變,NewLayer[5]將不會改變。

請注意,我不想創建一個新對象,而我想用另一個對象的屬性替換其他對象的屬性,這使得它與Stackoverflow上的其他問題有所不同,我認爲這不是重複。

+0

所以,你想有一個新的變量,它是_not_一個新的對象,但不改變其他對象的屬性,當其自身的屬性之一改變了? – CompuChip

+0

您可以爲NewLayerCounterMethod創建事件。當更改值時,您可以訪問所有數據 –

+0

@CompuChip其實我不想創建新的變量或對象,我想重新分配一個對象。我在MATLAB之前和之後用MATLAB編碼'='這樣做,而在C#中'='是引用類型,任何一個對象的變化都會影響另一個。 I – Jackson

回答

0

在這種情況下,你需要的功能添加到您的NewLayerCounterMethod類,在你其他類的所有屬性複製到新的一個。它看起來有點像那麼:

public void TakeProperties(NewLayerCounterMethod otherObject) 
{ 
    propA = otherObject.propA; 
    propB = otherObject.propB; 
    //And so on for all properties left 
} 

您可以添加後衛,所以你只如果新值是舊的更新不同的屬性,但我建議直接添加這些警衛的屬性。

地,上述方法不是叫這樣的:

NewLayer[5].TakeProperties(NewLayer[7]); 
相關問題