TOC

This article is currently in the process of being translated into Serbian (~99% done).

Основи:

Променљиве

Променљиву можемо да упоредимо с простором за складиштење и она представља суштину програмирања. У програмском језику C# променљиве се декларишу на следећи начин:

<тип податка> <име>;

Пример би могао да изгледа овако:

string name;

То је најелементарнија верзија, те ова променљива још увек нема вредност. Вредност јој можете доделити касније или приликом саме декларације:

<data type> <name> = <value>;

Ако ова променљива није локална променљива унутар метода у коме тренутно радите (на пример, ако је у питању променљива која је члан класе), вероватно ћете желети да одредите видљивост променљиве:

<видљивост> <тип податка> <име> = <вредност>;

Ево и комплетног примера:

private string name = "John Doe";

Видљивост је повезана с класама, те потпуније објашњење можете наћи у поглављу о класама. Сада ћемо се концентрисати на саму променљиву, користећи пример у коме користимо неколико њих:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string firstName = "John";
    string lastName = "Doe";

    Console.WriteLine("Name: " + firstName + " " + lastName);

    Console.WriteLine("Please enter a new first name:");
    firstName = Console.ReadLine();

    Console.WriteLine("New name: " + firstName + " " + lastName);

    Console.ReadLine();
}
    }
}

Велики део овога је већ објашњен, те ћемо се одмах бацити на оно што је интересантно. Пре свега, декларисали смо две променљиве типа string. string једноставно садржи текст, као што можете да видите, јер смо променљивим одмах доделили вредност. Затим исписујемо ред текста у конзоли, користећи те две променљиве. Низ текста је креиран користећи знак +, како бисмо спојили различите делове.

Затим захтевамо од корисника да унесе име и потом користимо метод ReadLine() како бисмо причитали кориснички унос у конзолу и доделили га променљивој firstName. Када корисник стисне Enter, ново име се додељује променљивој, а у следећем реду поново исписујемо име, како бисмо приказали промену. Управо смо употребили прву променљиву и најважнију функцију променљиве: способност да мења вредност у току извршавања.

Још један интересантан пример је математика. Ево једног таквог, заснованог на великом делу кода који смо претходно користили:

int number1, number2;

Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());

Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());

Console.WriteLine("Adding the two numbers: " + (number1 + number2));

Console.ReadLine();

Копирај овај код у метод Main и испробај како функционише. Једини нови "трик" који овде користимо је метод int.Parse(). Овај метод једноставно чита низ текста и конвертује га у цели број. Као што можете да видите, апликација се не бави валидирањем корисничког уноса и, ако унесете нешто што није број, програм ће избацити изузетак (exception). Више о томе касније.

Variables & scope

За сада смо користили само локалне променљиве, а то су променљиве које су дефинисане и користе се унутар истог метода. У програмском језику C#, променљиве дефинисане унутар метода не могу да се користе изван тог метода - због тога се зову локалне. Ако познајете друге програмске језике, могуће је да сте упознати с глобалним променљивим, које су доступне с различитих места, али C# не подржава концепт глобалних променљивих. Уместо тога, можете дефинисати поље класе, које је доступно свим методима те класе. Дозволите да ово покажем на примеру:

using System;

namespace VariableScope
{
    class Program
    {
private static string helloClass = "Hello, class!";

static void Main(string[] args)
{
    string helloLocal = "Hello, local!";
    Console.WriteLine(helloLocal);
    Console.WriteLine(Program.helloClass);
    DoStuff();
}

static void DoStuff()
{
    Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
    }
}

Обратите пажњу на члан helloClass, декларисан унутар класе уместо унутар метода - што га чини доступним како из метода Main() тако и из метода DoStuff() који смо сами креирали. Ово се не односи на променљиву helloLocal, декларисану унутар метода Main() и, тиме, доступну само унутар тог метода.

Концепт диференцијације између локације на којој је променљива декларисана назива се scoping, а задатак му је да спречи да код постане огромна збрка променљивих којима се може приступити и које се могу мењати с мноштва различитих места. Још једна техника која нам помаже у овоме зове се видљивост чланова (у овом случају, илустрована кључном речју private), а о њој ћемо дискутовати у поглављу о класама.

Сажетак

Променљиве нам омогућавају складиштење података разних типова, нпр. низова текста, бројева или кориснички дефинисаних објеката. Постоје локалне променљиве, доступне унутар метода у оквиру ког су дефинисане, и постоје поља класа, доступна из свих метода класе, па чак и изван класе, ако им видљивост то дозвољава.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!