TOC

This article has been localized into Polish by the community.

Podstawy:

Zmienne

Zmienną można porównać do magazynu, jest ona nieodłącznym elementem pracy programisty. W C# zmienną deklaruje się w następujący sposób:

<typ danych> <nazwa>;

Przykład może wyglądać w ten sposób:

string name;

Jest to najbardziej podstawowy wariant, ale zmienna nie ma jeszcze żadnej wartości. Możesz przypisać jej wartość później lub od razu przy deklaracji, w taki oto sposób:

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

Jeśli zmienna nie jest lokalna w stosunku do metody, nad którą obecnie pracujesz (np. jest właściwością klasy) możesz chcieć określić jej widoczność:

<widoczność> <typ danych> <nazwa> = <wartość>;

A tutaj pełny przykład:

private string name = "John Doe";

Widoczność zmiennej jest powiązana z klasami, stąd dokładniejsze wyjaśnienie znajdziesz w rozdziale poświęconym klasom. Skoncentrujmy się teraz na samej zmiennej, wykorzystując przykład gdzie używamy ich kilku:

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();
}
    }
}

W porządku, wiele z tego zostało już wyjaśnione, więc przejdziemy od razu do interesującej nas części. Po pierwsze deklarujemy kilka zmiennych typu string. String zawiera po prostu tekst, tak jak możesz zauważyć, ponieważ przypisujemy im od razu wartości. Następnie wyświetlamy linię tekstu w konsoli, gdzie używamy dwóch zmiennych. String jest tworzony poprzez użycie znaku + aby "połączyć" odrębne części.

Następnie prosimy użytkownika aby wprowadził nowe imię, a następnie używamy metody ReadLine() aby odczytać dane od użytkownika z konsoli i wprowadzić je do zmiennej firstName. W momencie gdy użytkownik wciśnie klawisz Enter nowe imię zostanie przypisane do zmiennej, a w kolejnej linii wyświetlimy ponownie prezentację imienia, aby pokazać zmianę. W tym momencie wykorzystaliśmy naszą pierwszą zmienną, a jej najważniejszą cechą jest: zdolność zmiany swojej wartości podczas pracy programu.

Kolejnym interesującym przykładem jest matematyka. Oto jeden przykład oparty w większości o ten sam kod, którego właśnie użyliśmy.

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();

Umieść ten kod w swojej metodzie Main i zobacz co się stanie. Jedyny nowy 'trik', którego używamy to metoda int.Parse(). Wczytuje ona po prostu stringa i zamienia go na liczbę całkowitą. Jak łatwo zauważyć, aplikacja ta nie sprawdza zgodności danych podanych przez użytkownika i jeśli wprowadzisz coś co nie jest liczbą pojawi się wyjątek. Więcej o wyjątkach powiemy później.

Zmienne i zasięgi

Jak dotąd używaliśmy wyłącznie zmiennych lokalnych, które są definiowane i używane wewnątrz tej samej metody. W C# zmienne definiowane wewnątrz metody nie mogą być użyte na zewnątrz tej metody - dlatego nazywa się je lokalnymi. Jeśli jesteś zaznajomiony z innymi językami programowanie możesz również znać zmienne globalne, do których można mieć dostęp z większej ilości miejsc, ale C# nie wspiera idei zmiennych globalnych. Zamiast tego możesz zdefiniować pole w klasie, do którego można się dostać ze wszystkich metod danej klasy. Pozwól mi zademonstrować to na przykładzie:

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);
}
    }
}

Zauważ, że właściwość klasy o nazwie helloClass zadeklarowano w zasięgu klasy zamiast we wnętrzu metody - to pozwoli na dostęp do tej zmiennej zarówno z wnętrza metody Main() jak i z naszej własnej metody DoStuff(). To nie będzie jednak możliwe dla naszej zmiennej helloLocal, która została zadeklarowana wewnątrz metody Main() i z tego powodu może być używana wyłącznie wewnątrz tej konkretnej metody.

Zmienne zadeklarowane w różnych miejscach posiadają różny zasięg, zapobiega to sytuacji, w której twój kod staje się wielkim bałaganem zmiennych, które można zmieniać ze zbyt wielu miejsc. Inną techniką radzenia sobie z tym jest widoczność właściwości (w tym przypadku reprezentowana za pomocą słowa kluczowego 'private'), o której porozmawiamy w rozdziale poświęconym klasom.

Podsumowanie

Zmienne pozwalają ci przechowywać dane różnych typów np. stringi (teksty), liczby bądź własne obiekty. Istnieją zmienne lokalne, które są dostępne wyłącznie wewnątrz metod, w których zostały zdefiniowane oraz istnieją pola klas, do których dostęp możemy uzyskać ze wszystkich metod danej klasy a nawet z poza tej klasy, jeśli ich widoczność na to pozwala.


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!