2016-08-23 2 views
1

私はクラスが定義されており、多くの値が定義されています。私はそれをコピーして、1つの変数を変更したい。しかし、私がこれを行うと、元のクラスの変数も変更されます。VBネットコピーのクラスと値の変更

私が使用しているコードを以下に示します。私が間違っていることは何ですか?

Dim NewClass As MyClass = PreviousClass(i) 
NewClass.Value1 = NewVal 
+0

は、あなたがの話をしていることを確認していますクラスではなく構造ですか?構造体の定義を表示し、PreviousVar配列を初期化する方法 – Steve

+0

申し訳ありませんクラスは – Chris

+0

です@Chrisクラスに変更されたことを参照してください。これはクラスの目的全体です。 –

答えて

2

これは、あなたのNewClassオブジェクトをDimとき、これは単にPreviousClassオブジェクトへの別の参照を作成しているためになりそうです。したがって、変数名NewClassPreviousClassはまったく同じオブジェクトを参照するため、NewClass.Value1 = NewValPreviousClassに影響します。 JaydipJが示すように

、あなたがオブジェクトのディープコピーが必要な場合があり、これら2つの答えは、彼らはあなたのための役に立つかもしれない見て -

Create a “clone” of this object, not point to it

copy one object to another

+0

このオブジェクトの「クローンを作成」してくれてありがとうございました。 – Chris

関連する問題