Assuming I have an Object ItemVO in which there a bunch of properties already assigned. eg:
ItemVO originalItemVO = new ItemVO();
originalItemVO.ItemId = 1;
You would need to construct a new instance of your class, not just assign the variable:
duplicateItemVO = new ItemVO
{
ItemId = originalItemVO.ItemId,
ItemCategory = originalItemVO.ItemCategory
};
When you're dealing with reference types (any class), just assigning a variable is creating a copy of the reference to the original object. As such, setting property values within that object will change the original as well. In order to prevent this, you need to actually construct a new object instance.