Присвоение массива структуры другому массиву такой же структуры - PullRequest
0 голосов
/ 12 октября 2010

В Vb.net я пытаюсь присвоить массив структур другому массиву с такой же структурой

  Dim info() As assemblyInfo
  Dim info2() As assemblyInfo

    Structure assemblyInfo
        Dim Name As String
        Dim ClassTpys() As ClassTyp
    End Structure

Private Sub test()

info2 = info

любое изменение ifo отражается в info2, этот assignmnet происходит с помощью Ref.

Я не хочу, чтобы какие-либо изменения в информации отражались в info2 и наоборот, после назначения, как я могу этого достичь?

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Это происходит потому, что info2=info просто присваивает ссылку информации на info2. Попробуйте info.CopyTo(info2, 0)

1 голос
/ 12 октября 2010

Массив является ссылочным типом, поэтому при его назначении вы фактически назначаете ссылку на него. Вам нужен Array.Copy метод http://msdn.microsoft.com/en-us/library/k4yx47a1.aspx

...