2017-04-10 103 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]); 
相关问题