Видимост на променливи в C#.

+8 гласа
123 прегледа
попитан 2016 юли 20 в Обща дискусия от gandalf31415 (240 точки)

Напълно начинаещ съм в програмирането. Изучавам езика C#. Ето един код, който би трябвало да работи но не работи.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Experiment3
{
    class Program
    {
        static void Main(string[] args)
        {
            int number, i;
            Console.Write("Въведи цяло положително в интервала [1..3] : ");
            i = int.Parse(Console.ReadLine());
            switch (i)
            {
                case 1:
                    number = 1;
                    break;
                case 2:
                    number = 2;
                    break;
                case 3:
                    number = 3;
                    break;
            }
            Console.WriteLine(number);
        }
    }
}

Получавам съобщение, че е използвана локалната променлива number, на която не е присвоена стойност.

2 отговори

0 гласа
отговорени 2016 юли 21 от Yovko.Gospodinov (540 точки)
Здравей,

Проблема, с който се сблъскваш може да решиш чрез присвояване на стойност на променливата number.

Най - често присвояваме на променлива от тип int - 0, int.MaxValue или int.MinValue, зависи какво искаш да постигнеш. В твоя случай е подходящо да присвоиш 0.

И по - конкретно компилатора, ти сигнализира за потенциален проблем - грешка и не компилира кода, защото има възможност, кода да не влезе в switch case и на променливата number да не бъде присвоена стойност, преди принтирането й.

Поздрави,
0 гласа
отговорени 2016 юли 21 от gandalf31415 (240 точки)
Много благодаря!
...