2014-03-17 2 views
-2

Хорошо, я пытаюсь создать хранилище булев для школьного проекта. У меня есть эта структура .. и я получаю сообщение об ошибке со всем, что связано с первым {в каждой структуре с ошибкойЭто создание булевых объектов приводит к ошибке?

Ошибка 2 Инициализаторы массива могут использоваться только в инициализаторе переменной или поля. Вместо этого попробуйте использовать новое выражение. Program.cs 34 17 Программа

Я не могу понять, что происходит ... может ли кто-нибудь мне помочь?

forwardAttackPossible = new bool [][] 
       { 
        {false,false,false,false,false,false, //MOVE UP 
          false,false,false,false,false, 
          true,true,true,true,true, 
          true,true,true,true,true, 
          true,true,true,true,true}, 

        {false,false,false,false,false,false, //MOVE UP RIGHT 
          false,false,false,false,false, 
          true,false,true,false,false, 
          false,true,false,false,false, 
          true,false,true,false,false}, 

        {false,true,true,true,false,false,  //MOVE RIGHT 
          true,true,true,false,false, 
          true,true,true,false,false, 
          true,true,true,false,false, 
          true,true,true,false,false}, 

        {false,true,false,true,false,false,  //MOVE DOWN RIGHT 
          false,true,false,false,false, 
          true,false,true,false,false, 
          false,false,false,false,false, 
          false,false,false,false,false}, 

        {false,true,true,true,true,true,  //MOVE DOWN 
          true,true,true,true,true, 
          true,true,true,true,true, 
          false,false,false,false,false, 
          false,false,false,false,false}, 

        {false,false,false,true,false,true,  //MOVE DOWN LEFT 
          false,false,false,true,false, 
          false,false,true,false,true, 
          false,false,false,false,false, 
          false,false,false,false,false}, 

        {false,false,false,true,true,true,  //MOVE LEFT 
          false,false,true,true,true, 
          false,false,true,true,true, 
          false,false,true,true,true, 
          false,false,true,true,true}, 

        {false,false,false,false,false,false, //MOVE UP LEFT 
          false,false,false,false,false, 
          false,false,true,false,true, 
          false,false,false,true,false, 
          false,false,true,false,true} 
       }; 
+0

Извините, но используется в C#. – user3430549

+0

Ошибка предельно ясна. Это говорит вам точно, что не так и что делать. –

+7

Кажется, вам нужно создать правильную модель данных вместо этого ужасного монстра. Я предлагаю использовать [enum] (http://msdn.microsoft.com/en-us/library/sbbt4032.aspx), которые можно комбинировать и использовать в качестве флагов. –

ответ

-1

Измените синтаксис, как это:

forwardAttackPossible = new bool [][] 
      { 
       new[] { boolValues }, 
       new[] { boolValues }, 
       new[] { boolValues } 
      } 

В вашем примере код должен выглядеть следующим образом:

forwardAttackPossible = new bool [][] 
      { 
       new [] {false,false,false,false,false,false, //MOVE UP 
         false,false,false,false,false, 
         true,true,true,true,true, 
         true,true,true,true,true, 
         true,true,true,true,true}, 

       new[] {false,false,false,false,false,false, //MOVE UP RIGHT 
         false,false,false,false,false, 
         true,false,true,false,false, 
         false,true,false,false,false, 
         true,false,true,false,false}, 

       // and so on... 
      }; 

Как ошибка гласит, что: { false,false,false } действует только тогда, когда определение новое поле или переменная:

bool[] values = { true, false, true }; 

В вашем случае вам нужно добавить new bool[] или просто new [], чтобы явно указать, что вы хотите создать массив.

+0

Это сработало отлично! Спасибо! – user3430549

+0

@ downvoters позаботились, чтобы объяснить, что не так с этим ответом. –

+0

Я думаю, вы знаете, почему :) – EZI

Смежные вопросы