2017-05-31 48 views
0

我對我的活動有一個(奇怪的)問題,當我從一個活動傳遞給另一個活動(創建地圖 - >播放)時,我保存了一個副本(原始地圖)「我的狀態「在用戶點擊」重啓「按鈕(在執行活動期間編輯原始」狀態「變量)時,用於恢復它的變量(在OnCreate方法中)。但不可思議的是(對我來說)複製變量像原始版本一樣更新。什麼是錯誤?可變自動刷新xamarin android

int[,] state = new int[10,10]; 

protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     SetContentView(Resource.Layout.step_by_step); 
     int[] array = Intent.GetIntArrayExtra("arrayintero"); 
     //re-convert the array in 2D-array 
     int[,] initial = new int[10, 10]; 
     int conta = 0; 
     for (int i = 0; i < 10; i++) 
     { 
      for (int j = 0; j < 10; j++) 
      { 
       state[i, j] = array[conta] 
       conta++; 
      } 
     } 
     //initial is the copy variable 
     initial = state; 
     //update the map 
     update_draw(buttonArray, state); 

     //when the restart button is clicked 
     restart.Click += delegate 
     { 
      Toast.MakeText(this, "restart", ToastLength.Short).Show(); 
      //restore the map 
      update_draw(buttonArray, initial); 
      //update the original variable 
      state = initial;     
     }; 
+1

C#數組是對象,所以你只需創建兩個指向同一個對象。 – Jason

+0

謝謝@Jason!我已經使用'Array.Copy(狀態,0,初始,0,100); 「 – Albenzo

回答

0

解決方案

Array.Copy(state,0, initial, 0,100) 

謝謝你@Jason