很好,我有一個組合框,它有一個自定義對象(「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。非常感謝。 –