Sdílet prostřednictvím


Obecná struktura programu jazyka C#

Návod

Začínáte s vývojem softwaru? Začněte nejprve kurzy Začínáme . Než se dozvíte o struktuře programů, provedou vás psaním prvních programů jazyka C#.

Máte zkušenosti v jiném jazyce? Možná budete chtít přeskočit část Začínáme pro syntaxi specifickou pro jazyk C#a pak se sem vrátit.

Programy jazyka C# vytváříte z těchto základních stavebních bloků: obory názvů uspořádají typy, typy (třídy, struktury, rozhraní, výčty a delegáty) definují chování a data a příkazy a výrazy provádějí práci za běhu. Způsob strukturování vstupního bodu závisí na tom, jaký styl aplikace zvolíte.

Volba stylu aplikace

Když vytvoříte program v jazyce C#, proveďte dvě nezávislé volby, jak ho strukturovat:

  • Souborové nebo projektové?
    • Aplikace založená na souborech běží z jednoho .cs souboru bez souboru projektu.
    • Aplikace založená na projektu používá .csproj soubor a může zahrnovat více zdrojových souborů.
  • Příkazy nejvyšší úrovně nebo Main metoda?
    • Příkazy nejvyšší úrovně umožňují psát spustitelný kód přímo na začátek souboru.
    • Metoda Main zabalí vstupní bod do explicitní statické metody.

Aplikace založené na projektu i souborové aplikace podporují styl vstupního bodu.

Souborové aplikace vs. aplikace založené na projektu

Počínaje verzemi C# 14 a .NET 10 vám aplikace založené na souborech umožňují spustit program obsažený v jednom *.cs souboru bez souboru projektu. Do souboru s názvem hello-world.cs uložte následující kód a spusťte ho pomocí dotnet run hello-world.cs nebo dotnet hello-world.cs:

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

Poznámka:

Řádek #! umožňuje, aby unixová prostředí spouštěla soubor přímo. V jakémkoli systému Unix nastavte oprávnění ke spuštění (+x) a spusťte soubor z příkazového řádku.

Souborové aplikace podporují všechny syntaxe jazyka C# a můžou ke konfiguraci systému sestavení použít direktivy preprocesoru . Používejte souborové aplikace pro malé nástroje příkazového řádku, prototypy a experimenty. Souborová aplikace se skládá z jednoho souboru v adresáři:

my-app/
└── hello-world.cs

Aplikace založené na projektu používají soubor .csproj a .NET CLI příkazydotnet new, dotnet build a dotnet run pracovní postup. Zvolte aplikace založené na projektu, když váš program pokrývá více souborů nebo potřebuje jemně odstupňovanou konfiguraci sestavení. Aplikace založená na projektu obsahuje soubor projektu společně s jedním nebo více zdrojovými soubory:

my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│   └── Person.cs
└── Services/
    └── GreetingService.cs

Pokud se vaše aplikace založená na souborech rozrůstá, můžete ji snadno převést na projektovou aplikaci. Spuštěním dotnet project convert vygenerujte soubor projektu z existujícího zdrojového souboru.

Pokud víte, že vaše aplikace potřebuje od začátku více zdrojových souborů, začněte aplikací založenou na projektu. Krok převodu se vyhnete a kód můžete hned uspořádat do samostatných souborů.

Příkazy nejvyšší úrovně vs. Main metoda

Pomocí příkazů nejvyšší úrovně můžete zapsat spustitelný kód přímo do jednoho souboru bez zabalení do třídy a Main metody. Tento styl je výchozí při vytváření nové konzolové aplikace s dotnet new console. Následující příklad ukazuje moderní program jazyka C#, který používá příkazy nejvyšší úrovně:

Console.WriteLine("Hello, World!");

namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }
}

Pouze jeden soubor v projektu může obsahovat příkazy nejvyšší úrovně a vstupní bod je prvním řádkem textu programu v tomto souboru. Při vytváření větších programů zahrnete více prvků programu.

Jako vstupní bod programu můžete také definovat explicitní statickou Main metodu:

// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;

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

Oba styly vstupních bodů fungují se souborovými i projektovými aplikacemi. Oba styly podporují stejné funkce.

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

Jazyk C# je kompilovaný jazyk. V případě aplikací založených na projektu použijte dotnet build příkaz ke kompilaci zdrojových souborů do binárního balíčku. Použijte dotnet run pro sestavení a spuštění v jednom kroku. Rozhraní dotnet příkazového řádku, které je součástí sady .NET SDK, poskytuje mnoho nástrojů pro vytváření, sestavování a správu projektů jazyka C#.

U souborových aplikací dotnet run hello-world.cs se zkompiluje a spustí jeden soubor přímo – nevyžaduje se žádný soubor projektu.

Výrazy a příkazy

Pokud jste postupovali podle kurzů Začínáme , už jste napsali výrazy a příkazy. Každý řádek kódu, který jste zadali, byl jeden nebo druhý (nebo oba). Teď pojďme tyto termíny definovat.

Výrazy a příkazy jsou základními stavebními bloky programu jazyka C#. Výraz vytvoří hodnotu. Příkaz vykoná akci a obvykle končí středníkem.

Následují výrazy:

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

Příkaz vykonává akci. Příkazy řídí tok programu, deklarují proměnné nebo vyvolávají operace. Toto jsou tvrzení:

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

Příkazy často obsahují výrazy a výrazy můžou být vnořeny do jiných výrazů. Například následující deklarace přiřadí f jako výsledek výrazu sčítání. Tento výraz sčítání sčítá výsledky dvou volání metod:

var maxResult = Math.Max(a, b) + Math.Max(c, d);

Podrobné informace o příkazech najdete v tématu Příkazy. Informace o členech s tělem tvořeným výrazem naleznete v tématu Expression-bodied members.