【发布时间】:2017-04-10 12:30:08
【问题描述】:
我已将对象列表定义为List<NewLayerCounterMethod> NewLayer = new List<NewLayerCounterMethod>();,其中NewLayerCounterMethod 类中的每个对象都有四个属性,例如:VehicleType, VehicleCounter,Counter,Updating。
NewLayer 的对象数量为 10,我想将 NewLayer[7] 复制到 NewLayer[5] 中,这样如果 NewLayer[7] 更改,NewLayer[5] 将不会更改。
请注意,我不想创建一个新对象,而我想用另一个对象的属性替换一个对象的属性,这使得它与 Stackoverflow 上的其他问题有所不同,我认为这不是重复。
【问题讨论】:
-
所以你想要一个新变量,它不是一个新对象,但是当它自己的属性之一改变时不改变另一个对象的属性?
-
您可以为 NewLayerCounterMethod 创建事件。更改值后,您可以访问所有数据
-
@CompuChip 实际上我不想创建一个新的变量或对象,我想重新分配一个对象。我之前在 MATLAB 中编写过代码,在 MATLAB
=中执行此操作,而在 C# 中=是引用类型,其中一个对象的任何更改都会影响另一个对象。我 -
C# 默认对值类型进行复制。如果您想要值语义,请使用值类型(将您的
class更改为struct)。不过,请确保您了解其中的含义。 -
@Luaan 你的意思是如果我把 Class 改成 Struct 就可以了?