很好,我有一个组合框,它有一个自定义对象(“Person”类)的列表作为数据源。我已将Person.Name映射为DisplayMember,并且该对象是所选的值。复制一个类实例
当有人选择一个“鲍勃”人并按下ChoosePerson时,我想把这个人,复制它,并使用duplicateata做东西。
继承人的代码来解释它:
Private Sub ChoosePerson_Click(sender As Object, e As EventArgs) Handles ChoosePerson.Click
Dim p As Person= CType(cbPerson.SelectedValue, Person)
MyChosenList.Add(ChoseAPerson(m))
cbPerson.SelectedIndex() = 0
End Sub
Private function ChoseAPerson(byval p as Person) as Person
Dim newPerson as Person = p
newPerson.name = "ANewPerson_" & p.Name
Return newPerson
End function
现在,如果我回到我的组合框cbPerson,我选择较早(BOB)的人都会有它的名字替换为“ANewPerson_bob”
我如何确保添加到myChosenList中的“bob”人是Person类的不同实例?
编辑
我补充侦察一点上谷歌找到做我的对象的克隆正确的方式@dotNET建议它
Public Function Clone() As Object Implements ICloneable.Clone
Return DirectCast(MemberwiseClone(), Person)
End Function
你的正式我的新的最好的朋友,如果这个工程,我马上试试! –
太棒了,这个效果很好,浅层克隆就是我需要的atm。非常感谢。 –