Sdílet prostřednictvím


Obecná struktura programu jazyka C#

Programy jazyka C# se skládají z jednoho nebo více souborů. Každý soubor obsahuje nula nebo více oborů názvů. Obor názvů obsahuje typy, jako jsou třídy, struktury, rozhraní, výčty a delegáty nebo jiné obory názvů. Následující příklad je kostra programu jazyka C#, která obsahuje všechny tyto prvky.

using System;

Console.WriteLine("Hello world!");

namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }
}

Předchozí příklad používá příkazy nejvyšší úrovně pro vstupní bod programu. Pouze jeden soubor může mít příkazy nejvyšší úrovně. Vstupním bodem programu je první textový řádek textu programu v tomto souboru. V tomto případě je to Console.WriteLine("Hello world!");. Můžete také vytvořit statickou metodu s názvem Main jako vstupní bod programu, jak je znázorněno v následujícím příkladu:

// A skeleton of a C# program
using System;
namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world!");
        }
    }
}

V takovém případě program začne v počáteční složené závorce Main metody, což je Console.WriteLine("Hello world!");

Sestavování a spouštění programů v jazyce C#

Jazyk C# je kompilovaný jazyk. Ve většině programů jazyka dotnet build C# použijete příkaz ke kompilaci skupiny zdrojových souborů do binárního balíčku. Pak tento příkaz použijete dotnet run ke spuštění programu. (Tento proces můžete zjednodušit, protože dotnet run program zkompiluje před spuštěním v případě potřeby.) Tyto nástroje podporují bohatý jazyk možností konfigurace a přepínačů příkazového řádku. Rozhraní dotnet příkazového řádku (CLI), které je součástí sady .NET SDK, poskytuje mnoho nástrojů pro generování a úpravy souborů jazyka C#.

Od C# 14 a .NET 10 můžete vytvářet souborové aplikace, které zjednodušuje sestavování a spouštění programů v jazyce C#. Pomocí příkazu spustíte dotnet run program obsažený v jednom *.cs souboru. Pokud je například následující fragment kódu uložený v souboru s názvem hello-world.cs, můžete ho spustit zadáním dotnet run hello-world.cs:

#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");

První řádek programu obsahuje #! posloupnost pro unixové prostředí. Umístění příkazového rozhraní dotnet CLI se může lišit v různých distribucích operačních systémů. Pokud v jakémkoli systému Unix nastavíte oprávnění execute (+x) pro soubor C#, můžete spustit soubor C# z příkazového řádku:

./hello-world.cs

Zdrojem těchto programů musí být jeden soubor, ale jinak je platná všechna syntaxe jazyka C#. Aplikace založené na souborech můžete použít pro malé nástroje příkazového řádku, prototypy nebo jiné experimenty. Aplikace založené na souborech umožňují direktivy preprocesoru , které konfigurují systém sestavení.

Výrazy a příkazy

Programy v jazyce C# se vytvářejí pomocí výrazů a příkazů. Výrazy vytvářejí hodnotu a příkazy provádějí akci:

Výraz je kombinace hodnot, proměnných, operátorů a volání metod, která se vyhodnotí jako jedna hodnota. Výrazy vytvářejí výsledek a dají se použít všude, kde se očekává hodnota. Následující příklady jsou výrazy:

  • 42 (literálová hodnota)
  • x + y (aritmetická operace)
  • Math.Max(a, b) (volání metody)
  • condition ? trueValue : falseValue (podmíněný výraz)
  • new Person("John") (vytvoření objektu)

Příkaz je úplná instrukce, která provádí určitou akci. Příkazy nevrací hodnoty; místo toho řídí tok programu, deklarují proměnné nebo provádějí operace. Následující příklady jsou výroky:

  • int x = 42; (deklarace)
  • Console.WriteLine("Hello"); (příkaz výrazu – obalí výraz volání metody)
  • if (condition) { /* code */ } (podmíněný výraz)
  • return result; (return – příkaz)

Klíčové rozlišení: výrazy se vyhodnocují jako hodnoty, zatímco příkazy provádějí akce. Některé konstrukce, jako jsou volání metod, mohou být obojí. Například Math.Max(a, b) je výraz, když je použitý v int result = Math.Max(a, b);, ale stane se výrazovým příkazem, když je zapsán samostatně jako Math.Max(a, b);.

Podrobné informace o příkazech najdete v tématu Příkazy. Informace o členech s tělem výrazu a dalších vlastnostech výrazů naleznete v tématu Členy s tělem výrazu.

O těchto prvcích programu se dozvíte v typech části průvodce základy:

Specifikace jazyka C#

Další informace najdete v tématu Základní koncepty ve specifikaci jazyka C#. Specifikace jazyka je konečným zdrojem syntaxe a použití jazyka C#.