Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
77 / 74 / 33
Регистрация: 13.02.2018
Сообщений: 1,347
1

Локальная переменная уже определена в этой области

22.01.2019, 21:18. Просмотров 1569. Ответов 2
Метки нет (Все метки)

Доброго времени суток, почему если переменная объявлена в первой метке свича, то она будет доступна во всех других?

Если у меня в каждой метке свои переменные они что все инициализируються что ли?

C#
1
2
3
4
5
switch(NUMBER)
{
case 0: int a = 5; break;
case 1: int a = 7; break; // тут уже пишет что a объявлено.
}
Да, возможно эта переменная которая объявлена в другой метке не будет содержать значения, но память ты выделена уже, выходит все что находиться в свиче сразу получает свое места в памяти?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2019, 21:18
Ответы с готовыми решениями:

Локальная переменная или функция с именем "ran" уже определена в этой области
Заданы массивы А1(6), А2(7), А3(4), А4(6). Найти минимальное значение положительных чисел массива и...

Переменная уже определена в Form_5.obj
Здравствуйте, я наткнулся на следующую проблему и не могу решить. Вот имеется код файла Form_5.h:...

Ошибка компиляции: static переменная уже определена
Подскажите в чём проблема ? SceneDataSet.h #ifndef SCENE_DATA_SET_H #define...

"Переменная" уже определена в *.obj
menu_main #pragma once #include "ec.h" #pragma comment(lib, "Ws2_32.lib") #pragma comment(lib,...

2
8 / 9 / 4
Регистрация: 30.11.2016
Сообщений: 108
22.01.2019, 21:44 2
Не проще объявить переменную а до
C#
1
switch(NUMBER)
, а после в
C#
1
case
присваивать ей значения?
Так как сделали вы нельзя, переменная будет видна во всех кейсах switch'a
1
Эксперт .NET
14491 / 10932 / 2886
Регистрация: 17.09.2011
Сообщений: 18,457
22.01.2019, 21:46 3
Лучший ответ Сообщение было отмечено k0vpack как решение

Решение

Цитата Сообщение от k0vpack Посмотреть сообщение
почему если переменная объявлена в первой метке свича, то она будет доступна во всех других?
У всех переменных свитча одна область определения.

Цитата Сообщение от k0vpack Посмотреть сообщение
выходит все что находиться в свиче сразу получает свое места в памяти?
Момент выделения памяти под локальные переменные отдается на откуп компилятору — язык это не регламентирует.
Например, в майкрософтовской реализации компилятора память подо все локальные переменные выделяется при входе в метод — вне зависимости от того, где в теле метода эти переменные объявляются в коде.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2019, 21:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Локальная переменная или параметр с именем "i" нельзя объявить в данной области
Написал программу, которая удаляет из одномерного массива все чётные элементы: using System;...

Понять ошибку: Ошибка CS0136 Локальная переменная или параметр с именем "i" нельзя объявить в данной области...
Задание: задан числовой массив, состоящий из n элементов (n<=100). Используя сортировку массива,...

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз
Исходники: /* main.cpp */ #include "hider.h" int main(void) { return 0; } /* foo.cpp */

Переменная не определена
Почему бетта и F не определены?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.