TOC

This article has been localized into Czech by the community.

Datové typy:

Implicitně typované proměnné (klíčové slovo var)

Od verze C# 3.0 můžete použít klíčové slovo var na levé straně deklarace proměnné, místo explicitního deklarování typu proměnné. To je možné pouze uvnitř metody - ne na úrovni třídy, kde musíte vždy specifikovat typ. Podívejme se, jak to vypadá, když použijete klíčové slovo var:

int age = 42; // Explicitly typed variable

var name = "John Doe"; // Implicitly typed variable

Dvě proměnné - jedna je deklarována s typem int, zatímco druhá je deklarována klíčovým slovem var, místo specifikování jako řetězec. Všimněte si, že v obou případech přiřazuji hodnotu, protože i když to není požadováno při deklaraci typu, při použití klíčového slova var to vyžadováno je. Důvodem je, že kompilátor C# odvodí typ z pravé části příkazu - jednoduše se podívá, co se snažíte přiřadit k proměnné během kompilace, a pak změní klíčové slovo var na odpovídající typ.

To také znamená, že při používání klíčového slova var není žádné dodatečné zatížení - během běhu programu je to stejně rychlé jako explicitně deklarovaná proměnná, protože to je v podstatě to, co to je, když .NET framework spouští váš kód.

Náš první příklad je velmi triviální - není zde mnoho času ušetřeno psaním "var" místo "string". Nicméně, někdy budete deklarovat mnohem složitější typy, ať už jako novou proměnnou nebo jako lokální výsledek z funkce (uživatelem definované nebo z frameworku). V příkladu jako je tento je šance ušetřit slušné množství úhozů do klávesnice:

Dictionary<int, List<string>> dict1 = new Dictionary<int, List<string>>();

var dict2 = new Dictionary<int, List<string>>();

Výsledek bude přesně stejný, ale ve druhém případě určitě ušetříte nějaké úhozy do klávesnice, a protože v obou případech specifikujete typ na pravé straně, při použití klíčového slova var v příkladu, jako je tento, prakticky nedochází ke ztrátě čitelnosti vašeho kódu.

Klíčové slovo var můžete také použít při deklaraci lokální proměnné jako výsledku volání metody:

var s = DateTime.Now.ToString();

Opět je to rychlejší a je stále docela jasné, co se děje a jaký typ bude proměnná obsahovat (řetězec). To však nemusí být případ jako tento:

var myVar = SomeMethodWithANameWhichDoesntIndicateTheReturnType();

V situaci, jako je tato, vůbec není jasné, co proměnná bude obsahovat, a můžete obětovat čitelnost svého kódu. Zde byste měli zvážit použití explicitně typované proměnné.

Klíčové slovo var a anonymní typy

Doposud byly příklady, které jsme viděli s klíčovým slovem var, většinou z oddělení "syntaktického cukru" - je hezké je mít a jsou kratší na psaní, ale ve skutečnosti nejsou požadavkem. Nicméně při práci s anonymními typy (o nichž bude řeč později) dává smysl deklarovat vaše objekty s klíčovým slovem var:

var myObj = new
{
    Name = "John Doe",
    Age = 42
};
Console.WriteLine(myObj.Name);

V tomto případě opravdu potřebujete klíčové slovo var, abyste později mohli přistupovat k polím anonymního typu, jak je ukázáno v tomto příkladu.

Shrnutí

Klíčové slovo var vám umožňuje deklarovat lokální proměnnou (uvnitř metody nebo smyčky) bez explicitního uvedení typu - místo toho kompilátor C# odvodí typ z pravé části deklarace. To může být v mnoha situacích opravdu pohodlné, ale může také váš kód učinit méně čitelným. „Var“ můžete použít, nebo se držet explicitního deklarování typů proměnných - jak preferujete, ale pro anonymní typy je to, jak již bylo vysvětleno, nutné.


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!