@D3nch1kk

Как по другому сделать?

int characterChoose = Convert.ToInt32(Console.ReadLine());
 switch(characterChoose)
 {
     case 0:
         int PlayerDamage = 50;
         int PlayerHealth = 150;
         int PlayerResist = 25;
         break;
     case 1:
         int PlayerDamage = 75;
         int PlayerHealth = 125;
         int PlayerResist = 15;
         break;

 }

Пишет
Переменная PlayerDamage уже объявлена в этой области
  • Вопрос задан
  • 103 просмотра
Решения вопроса 3
vabka
@vabka Куратор тега C#
Токсичный шарпист
А что сделать то?
Вообще кажется, что вот эти характеристики лучше в класс объединить и держать где-нибудь словарь/массив со всеми вариантами.

Тогда и switch не понадобится и вот так дублировать тоже не придётся
Ответ написан
Комментировать
@mvv-rus
Настоящий админ AD и ненастоящий программист
Вынесите описания переменных наверх, над swicth.
int PlayerDamage ;
int PlayerHealth;
int PlayerResist ;

 switch(characterChoose)
 {
     case 0:
         PlayerDamage = 50;
         PlayerHealth = 150;
         PlayerResist = 25;
         break;
     case 1:
         PlayerDamage = 75;
         PlayerHealth = 125;
         PlayerResist = 15;
         break;

 }

PS Согласен с предыдущим комментатором - инциализация через оператор switch выглядит тяжеловесно. В нынешнем C# можно записать то же самое сильно короче, через деконструкцию, например.
PPS Держите пример с вашеми данными, как это должно выгдядеть стильно-модно-молодежно:
int characterChoose = Convert.ToInt32(Console.ReadLine());
(int PlayerDamage, int PlayerHealth , int PlayerResist)=characterChoose switch
{
    0 => (50, 150, 25),
    1 => (75, 125, 15),
   //... дописать все остальные варианты
} ;
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
а что говорит компилятор? и справка по ошибке?
.. там и делайте выводы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы