This article has been localized into Czech by the community.
Proměnné
Proměnnou lze přirovnat k úložné místnosti, a pro programátora je nezbytná. V C# se proměnná deklaruje takto:
<data type> <name>;
Například by to mohlo vypadat takto:
string name;
To je ta nejzákladnější verze, ale proměnná ještě nemá hodnotu. Tu lze proměnné přiřadit později nebo hned při deklaraci takto:
<data type> <name> = <value>;
Jestliže se nejedná o lokální proměnnou metody, ve které zrovna pracujete, měla by se proměnné přiřadit také viditelnost:
<visibility> <data type> <name> = <value>;
Kompletní příklad:
private string name = "John Doe";
Ta část s viditelností je spojená s třídami, takže podrobnější vysvětlení najdete v kapitole o třídách. Pojďme se zaměřit na proměnné a kde je můžeme použít:
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();
}
}
}
Dobře, hodně toho již bylo vysvětleno, takže skočíme přímo na zajímavou část. Nejprve deklarujeme pár proměnných s typem string. String jednoduše obsahuje text, jak můžete vidět, protože jim dáme hodnotu. Dále, vložíme řádku textu do konzole, kde použijeme dvě proměnné. Tento string je tvořen znaky "+" ke "spojování" různých částí.
Dále požádáme uživatele o nové křestní jméno a poté použijeme metodu ReadLine() k přečtení uživatelova vstupu z konzole a přiřadíme jej k proměnné firstName. Poté, co uživatel stiskne klávesu Enter, křestní jméno bude přiřazeno k proměnné a na další řádek znovu napíšeme jména, abychom viděli změnu. Právě jsme použili naši první proměnnou a její nejdůležitější vlastnost: možnost změnit svou hodnotu za běhu.
Další zajímavý příklad je počítání. Tady je jeden založený na stejném kódu, který jsme právě použili:
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();
Dejte toto do naší metody Main, a vyzkoušejte to. Jediný nový "trik", který tu používáme, je metoda int.Parse(). Jednoduše čte string a konvertuje ho do proměnné integer (int). Jak můžete vidět, tato aplikace neprojevuje žádnou snahu k ověření uživatelského vstupu, a pokud vstoupí něco, co není číslo, nastane výjimka. Více o tomto později.
Proměnné & přístup
Dosud jsme používali pouze lokální proměnné, které jsou definované a používané v té samé metodě. V C# nemůže proměnná definovaná v metodě být používána mimo onu metodu - proto se nazývá lokální. Pokud znáte jiné programovací jazyky, můžete také znát globální proměnné, které mohou být přístupné z více míst, ale C# koncept globálních proměnných nepodporuje. Namísto toho, můžete ve třídě definovat pole, které bude přístupné z metod této třídy. Dovolte mi demonstrovat s tímto příkladem:
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);
}
}
}
Všimněte si proměnné helloClass, deklarované uvnitř třídy namísto metody - to nám umožní přístup z jak metody Main(), tak s naší vlastní metodou DoStuff(). To samé neplatí pro naši proměnnou helloLocal, která byla deklarována v metodě Main() a proto může být použita pouze v specifické metodě.
Koncept rozlišování mezi tím kde je proměnná deklarována se nazývá scoping a zabraňuje kódu v tom, aby se z něj stala velká kupa proměnných, které mohou být změněny z příliš mnoha míst. Další technika, která nám s tímto pomáhá se nazývá viditelnost (v tomto případě ilustrována klíčovým slovem private), což probereme v kapitole o třídách.
Shrnutí
Proměnné vám dovolují ukládat data různých typů, např. textové řetězce, čísla nebo vlastní objekty. Jsou zde lokální proměnné, které jsou přístupné v metodě, ve které byly definovány a poté zde jsou pole tříd, která jsou přístupná ve všech metodách třídy a dokonce i mimo třídu, jestliže to jejich viditelnost dovoluje.