Příkazy (Příručka programování C#)
Akce, které má program jsou vyjádřeny v příkazech.Běžné akce patří deklarování proměnných, přiřazení hodnoty, volání metody opakování prostřednictvím kolekce a větvení jeden nebo druhý blok kódu v závislosti na danou podmínku.Pořadí, ve kterém se příkazy jsou spouštěny v programu se nazývá tok řízení toku spouštění.Tok řízení se může lišit při každém spuštění programu v závislosti na tom, jak program reaguje na vstup obdrží za běhu.
Prohlášení může sestávat z jediného řádku kódu, který končí středníkem nebo řada příkazů na jeden řádek v bloku.Blok příkazu je uzavřený v hranatých závorkách {} a může obsahovat vnořené bloky.Následující kód ukazuje dva příklady příkazů jednořádkové a víceřádkové příkaz blokovat:
static void Main()
{
// Declaration statement.
int counter;
// Assignment statement.
counter = 1;
// Error! This is an expression, not an expression statement.
// counter + 1;
// Declaration statements with initializers are functionally
// equivalent to declaration statement followed by assignment statement:
int[] radii = { 15, 32, 108, 74, 9 }; // Declare and initialize an array.
const double pi = 3.14159; // Declare and initialize constant.
// foreach statement block that contains multiple statements.
foreach (int radius in radii)
{
// Declaration statement with initializer.
double circumference = pi * (2 * radius);
// Expression statement (method invocation). A single-line
// statement can span multiple text lines because line breaks
// are treated as white space, which is ignored by the compiler.
System.Console.WriteLine("Radius of circle #{0} is {1}. Circumference = {2:N2}",
counter, radius, circumference);
// Expression statement (postfix increment).
counter++;
} // End of foreach statement block
} // End of Main method body.
} // End of SimpleStatements class.
/*
Output:
Radius of circle #1 = 15. Circumference = 94.25
Radius of circle #2 = 32. Circumference = 201.06
Radius of circle #3 = 108. Circumference = 678.58
Radius of circle #4 = 74. Circumference = 464.96
Radius of circle #5 = 9. Circumference = 56.55
*/
Typy výkazů
Následující tabulka uvádí různé typy příkazů v jazyce C# a jejich přidružené klíčová slova s odkazy na témata, které obsahují další informace:
Kategorie |
Klíčová slova jazyka C# / poznámky |
---|---|
Příkazy deklarace |
Prohlášení prohlášení zavádí novou proměnnou nebo konstantu.Deklarace proměnné Volitelně můžete přiřadit hodnotu proměnné.Deklarace konstanty je vyžadován přiřazení. |
Příkazy výrazů |
Příkazy výrazů, které počítají hodnotu musí ukládat hodnotu proměnné.
|
Výběr příkazy umožňují větví různých částí kódu podle jednoho nebo více zadaných podmínek.Další informace naleznete v následujících tématech: |
|
Příkazy iterace můžete procházet kolekce jako matice nebo opakovaně provádět stejnou sadu příkazů, dokud je splněna zadaná podmínka.Další informace naleznete v následujících tématech: |
|
Řízení přenosu příkazy Přejít na jinou část kódu.Další informace naleznete v následujících tématech: |
|
Příkazy pro zpracování výjimek umožňují vynuceně obnovit z výjimečných podmínek, které nastanou v době běhu.Další informace naleznete v následujících tématech: vyvolat, try-catch, try-finally, konstrukce try-catch-finally |
|
Zkontrolovat a nekontrolované příkazy umožňují určit, zda číselné operace mohou způsobit přetečení, když výsledek je uložen v proměnné, která je výsledná hodnota příliš malá.Další informace naleznete v kontroluje a Nekontrolovaná. |
|
await Prohlášení |
Pokud označíte metodu s asynchronní modifikátor, můžete použít vyčkání operátor v metodě.Při řízení dosáhne await výraz v asynchronní metoda vrací řízení volajícímu a pokroku v metodě je pozastavena až do dokončení úkolu awaited.Po dokončení úkolu může pokračovat spuštění metody. Jednoduchý příklad naleznete v části "Asynchronní metody" Metody (Příručka programování C#).Další informace naleznete v tématu Asynchronní asynchronní pro programování a očekávat (C# a Visual Basic). |
yield return Prohlášení |
Iterace provádí vlastní iteraci přes kolekci, seznam nebo pole.Iterace používá příkazu yield return příkaz vrátit každý prvek v čase.Když yield return prohlášení je dosaženo, je zapamatované aktuální umístění v kódu.Spuštění při příštím volání iterace restartován z tohoto umístění. Další informace naleznete v tématu U iterátorů (C# a Visual Basic). |
fixed Prohlášení |
Přemístění pohyblivé proměnné příkazu fixed zabraňuje uvolňování.Další informace naleznete v pevnou. |
lock Prohlášení |
Příkaz lock umožňuje omezit přístup k bloky kódu pouze jedním vláknem současně.Další informace naleznete v Zámek. |
Příkazy s popisky |
Můžete dát příkaz popisek a použít goto klíčové slovo označené příkazu Přejít.(Viz příklad v následujícím řádku). |
Prázdný příkaz |
Prázdný příkaz obsahuje jeden středník.Neprovede žádnou akci a lze v místech, kde je vyžadováno prohlášení ale je nutné provést žádnou akci.Následující příklady ukazují použití dvou prázdný příkaz: |
Vložených příkazů
Některé příkazy včetně 370s1zax(v=vs.110).md, Při, pro, a foreach, mají vždy vložený příkaz, který je následuje.Tento vložený příkaz může být prohlášení jednoho nebo více příkazů do hranatých závorek {} příkaz bloku.Ani jeden řádek vložených příkazů mohou být uzavřeny v závorkách {}, jak je znázorněno v následujícím příkladu:
// Recommended style. Embedded statement in block.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
System.Console.WriteLine(s);
}
// Not recommended.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
System.Console.WriteLine(s);
Vložený příkaz, který není uzavřený v hranatých závorkách {} nemůže být prohlášení prohlášení nebo prohlášení, s popisky.To je ukázáno v následujícím příkladu:
if(pointB == true)
//Error CS1023:
int radius = 5;
Vložte vložený příkaz v bloku oprava chyby:
if (b == true)
{
// OK:
System.DateTime d = System.DateTime.Now;
System.Console.WriteLine(d.ToLongDateString());
}
Vnořené bloky prohlášení
Mohou být vnořené bloky prohlášení, jak je znázorněno v následujícím kódu:
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
if (s.StartsWith("CSharp"))
{
if (s.EndsWith("TempFolder"))
{
return s;
}
}
}
return "Not found.";
Nedostupné příkazy
V případě, že kompilátor určí, tok řízení může nikdy dosáhnout určitého příkazu za žádných okolností, vygeneruje upozornění CS0162, jak je znázorněno v následujícím příkladu:
// An over-simplified example of unreachable code.
const int val = 5;
if (val < 4)
{
System.Console.WriteLine("I'll never write anything."); //CS0162
}
Související oddíly
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.