Дефиниране на променливи в case
Работя над девета задача от домашното и се сблъсквам с нещо, което не мога да си обясня:
switch(type)
{
case (1):
Console.WriteLine("Please enter an int: ");
int a = int.Parse(Console.ReadLine());
Console.WriteLine(a + 1);
break;
case (2):
Console.WriteLine("Please enter a double: ");
double a = double.Parse(Console.ReadLine());
Console.WriteLine(a + 1);
break;
}
Извежда ми съобщение, че а вече е дефинирана. В това няма особена логика, тъй като switch би трябвало да изпълнява САМО ЕДИН case. Тоест след като е стигнало до case 2 то няма как да е декларирало променливата а в case 1.
Разбира се, не е проблем да използваме друга променлива във втория случай, но ми е любопитно каква логика следва Вижуал Студио, за да не ми позволи да декларирам променлива със същото наименование във втория случай.
Струва ми се, че и аз това предложих? :)
Подобно, аз показах как трябва да изглежда и защо няма нужда от самите скоби {} :)
Не се обиждайте , но си личи че не сте писали на езици в които няма var
В този случай е по-добре да има {} , а да няма var
Сигурен ли си? Какво ако "a" е пропърти на класа и искам да го каствам към различен тип според зависимост от някакъв кейз? Пак ли да създавам локални променливи и накрая на метода да присвоявам стойността? Присвояването пак ще направи mismatch в типовете и ще трябва каст.
"АКО" мирише и цапа ! Говорим за конкретният случай и човек е задал конкретен въпрос.
Не виждам смисъл от това цялото философстване.Той е решил как да си го направи и пита защо му дава грешка.
Мисля , че аз съм дал точен и конкретен отговор без ако и т.н. Ако беше питал как да го направи по друг начин.
Съгласен съм ,че има и други варианти.
Сигурен ли си? Какво ако "a" е пропърти на класа и искам да го каствам към различен тип според зависимост от някакъв кейз? Пак ли да създавам локални променливи и накрая на метода да присвоявам стойността? Присвояването пак ще направи mismatch в типовете и ще трябва каст.
Сигурен ли си? Какво ако "a" е пропърти на класа и искам да го каствам към различен тип според зависимост от някакъв кейз? Пак ли да създавам локални променливи и накрая на метода да присвоявам стойността? Присвояването пак ще направи mismatch в типовете и ще трябва каст.