我有一個定義的類,其中定義了許多值。我想複製它,然後更改1個變量。但是,當我這樣做時,它也會改變我原來的類中的變量。VB網絡複製類和更改值
我使用的代碼如下所示。任何想法我做錯了什麼?
Dim NewClass As MyClass = PreviousClass(i)
NewClass.Value1 = NewVal
我有一個定義的類,其中定義了許多值。我想複製它,然後更改1個變量。但是,當我這樣做時,它也會改變我原來的類中的變量。VB網絡複製類和更改值
我使用的代碼如下所示。任何想法我做錯了什麼?
Dim NewClass As MyClass = PreviousClass(i)
NewClass.Value1 = NewVal
這看起來是因爲當你Dim
你NewClass
對象,這只是建立另一個參考到PreviousClass
對象。因此變量名稱NewClass
和PreviousClass
指的是完全相同的對象,這就是爲什麼NewClass.Value1 = NewVal
也影響PreviousClass
。
由於JaydipJ暗示,可能需要對象的深層副本,這兩個答案看起來他們可能對您有用 -
感謝此對象的「創建」克隆「,而不是指向它''問題解決了我的問題 – Chris
你確定你說的結構而不是類?請顯示結構定義,以及如何初始化PreviousVar數組 – Steve
對不起,這是一個類 – Chris
@Chris我看到你變成了類,這是類的全部目的......它將與結構一起工作。 –