Statistika testů
K této kapitole
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Pro testování a jeho statistické vyhodnocení je nutné se přihlásit.


Celkem
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

První program v jazyce C#
Vytvoříme první program v jazyce C# pro konzolovou aplikaci a popíšeme si jeho strukturu. Ukážeme si, jak postupovat při jeho překladu a jak takový program spustit.
RNDr. Dušan Kovář, Ph.D.
21. února 2006
Počet návštěv: 85282

Napišme náš první program. Nezačneme ničím složitým. Naopak si vybereme nejjednodušší možný případ. Spokojíme se s tím, že program vypíše na příkazový řádek pozdrav.

Neotálejme tedy a otevřme si poznámkový blok (samozřejmě za předpokladu, že nepoužíváte některé z vývojářských prostředí, jakým je například Visual Studio .NET). Napišme následující kód:

using System;

namespace MojeVyukaProgramovani
{
   class MojePrvniTrida
   {
      static void Main()
      {
         Console.WriteLine("Ahoj. Já jsem pozdrav z tvého prvního programu.");
         Console.ReadLine();
      }
   }
}

Dříve či později přejdete na integrované vývojářské prostředí. V takovém prostředí je zvýrazňována syntaxe. Například klíčová slova (slova daného programovacího jazyka) jsou obvykle zbarvena modře. Proto i v našich příkladech bude syntaxe takovým způsobem zvýrazněna.

Uložme soubor s programem pod názvem PrvniProgram.cs. Nyní můžeme program přeložit pomocí kompilátoru (překladače) zdrojového kódu v jazyce C#. Tento kompilátor lze spustit přímo z příkazového řádku, jedná se o program csc.exe. Přejděme tedy do adresáře, v němž máte uložen soubor PrvniProgram.cs a zadejme v příkazovém řádku:

csc PrvniProgram.cs

Pokud program csc nebyl nalezen, je vyžadováno nastavení určitých systémových proměnných, které se provede spuštěním batového souboru vcvars32.bat , který můžete najít ve složce VC7/bin ve složce s instalací nástroje Visual Studio .NET. Můžete také použít postup, který je popsán v kapitole Více o kompilátoru C#

Pokud se naopak podaří program přeložit, spatříte následující hlášení:

Ve složce, ve které je umístěn zdrojový soubor, přibyl přeložený spustitelný soubor PrvniProgram.exe. Pojďme ho spustit. Napišme na příkazovém řádku PrvniProgram a program se provede:

Nyní se podívejme na strukturu programu. Začíná příkazem:

using System;

System je základní jmenný prostor rámce .NET. Jmenný prostor sdružuje související třídy a další typy. Ve jmenném prostoru System existuje například třída Console. Úplný název třídy je System.Console. Abychom nemusely stále psát System.Console, napíšeme na začátek programu using System a všechny třídy ze jmenného prostoru System můžeme používat se zkráceným názvem. Za using System musíme napsat středník. Středník ukončuje příkaz v jazyce C#. Tím máme za sebou první řádek kódu.

Klíčové slovo namespace definuje jmenný prostor, do kterého patří kód uvedený ve složených závorkách. Jmenný prostor v příkladu se jmenuje MojeVyukaProgramovani, můžete však použít libovolný přípustný název.

Dále je definovaná třída MojePrvniTrida. Její plný název je MojeVyukaProgramovani.MojePrvniTrida. C# je čistě objektově orientovaný jazyk, což znamená, že každá funkce (resp. metoda) musí být definována uvnitř třídy. A my alespoň jednu takovou metodu potřebujeme. Touto metodou je Main.

Main je vstupni bod programu, je to funkce, která se provádí jako první a samozřejmě jedním z úkolů překladačů (kompilátorů) je tuto funkci najít. V případě, že se to nezdaří, by program vlastně nevěděl, kde začít, tudíž již kompilátor ohlásí chybu při překladu. Jazyk C# je citlivý na velká a malá písmena (tzv. case sensitive). Zkuste napsat hlavní funkci jako main, MAIN, MaiN apod. - opět chyba. Definice metody Main vypadá následovně:

static void Main()
{
		
}

Již víme, že Main je název metody. Klíčové slovo void říká, že metoda Main nevrací žádnou hodnotu. Některé metody provedou výpočet a vrátí například spočítané číslo (vzpomeňte z matematiky na funkci sinus). Naše verze metody Main nic nevrací, pouze provede kód, který je umístěn ve složených závorkách. Další zajímavé klíčové slovo je static, které určuje, že metoda Main je metodou třídy a ne objektu, ale o tom snad později. Zatím se smiřte s tím, že static prostě napíšete.

Prázdné závorky za názvem funkce Main říkají, že tato verze (funkce Main může mít více podob) funkce Main nevyžaduje pro provedení svého kódu žádné vstupní parametry. Některé funkce naopak k výpočtu potřebují vstupní parametry, např. již zmíněná funkce sinus vyžaduje velikost úhlu, jehož sinus má vypočítat.

Složené závorky značí tzv. tělo metody. Veškerý kód zde umístěný se provede. My jsme zatím pouze vypsali pozdrav pomocí (opět statické) metody WriteLine třídy Console. Úplný název této třídy je System.Console. Již víme, že díky použití using System můžeme psát pouze zkrácený název Console. Metoda WriteLine je metodou třídy Console, což naznačíme ve volání pomocí operátoru tečka (.). WriteLine vypíše na příkazový řádek (konzolu) řádek textu uvedeného v závorkách. Umístěním textu do uvozovek jsme naznačili, že se jedná o konstantní text (textový řetězec) a ne o nějaké idenitifikátory proměnných, metod apod. O tom opět později.

Nakonec jsme zavolali metodu ReadLine, díky níž program neskončí ihned po výpisu pozdravu, ale čeká na zmáčknutí klávesy Enter.

Snažme se programy, které budeme během našeho kurzu vyvíjet, strukturovat tak, že jmenným prostorem bude název kapitoly, podprostorem název příkladu, přičemž příklady budeme v rámci dané kapitoly číslovat. Třídu, ve které bude metoda Main, nazveme vstupní bod programu. První program by tedy mohl vypadat následovně:

using System;

namespace PrvniProgram.Priklad1
{
   class VstupniBodProgramu
   {
      static void Main()
      {
         Console.WriteLine("Ahoj. Já jsem pozdrav z tvého prvního programu.");
         Console.ReadLine();
      }
   }
}

Jmenné prostory byste mohli vnořit ještě více, např:

namespace VyukaProgramovani.JazykC#.ZakladyProgramovani.PrvniProgram.Priklad1
{
   // Obsah jmenného prostoru
}

Více o jmenných prostorech najdete v kapitole Jmenné prostory.



Úkoly ke kapitole "První program v jazyce C#"

Napište program, který vypíše na příkazový řádek větu:

Zadejte uživatelské jméno:

Napište program, který bude mít metodu Main ve třídě s názvem VelmiDulezitaTrida a tato třída bude ve jmenném prostoru VelmiDulezityProstor, který bude podprostorem prostoru JesteDulezitejsiProstor. Program vypíše na příkazový řádek větu: "Pozdrav z velmi důležité třídy.

Co značí Main?

K čemu slouží klíčové slovo using?

Hodnocení kapitoly "První program v jazyce C#"
Oslovila vás tato kapitola?
Ohodnoťte její obsah počtem bodů od 1 (nejhorší) do 10 (nejlepší):
Průměrné hodnocení: 9,2
Celkem hodnotilo 35 osob.
Jednotlivá hodnocení: 
Diskuze ke kapitole "První program v jazyce C#"

Napadá vás zajímavá otázka související s touto kapitolou?

Přidejte do diskuze
Zatím diskutovaná témata:

vy kurvyyyyy [tvoje máma, 10.11.2016 12:44:59 ]  
ahoj krtku
jak zjistim cestu k csc.exe [MUHEHE, 8.3.2011 0:15:03 ]  
mozna divny dotaz, ale vypisuje mi to to same jako jirkovi jak pise nahore, az na to ze nemohu prijit jak ta cesta zni a nemoohu si ji tudiz dat do te promenne path:) zkousela jsem to ruzne podle vzoru ale dosud mi to pise to same, i kdyz jsem do pathext pridala .cs.... jsem uplny begginer, takze sama asi neprijdu na to, kde je chyba :(
Reakce Re: jak zjistim cestu k csc.exe [MUHEHE, 8.3.2011 0:20:51 ]  
supr, tak uz mi to nepise to same, zadala jsem dalsi nahodnou cestu do path a uz to hazi fatal error cs2008: no inputs specified...snad nekdo pomueze.., a kdyz ne tak to treba po nejaky dobe rozlustim :X
Reakce Re: jak zjistim cestu k csc.exe [David Novák, 29.7.2015 5:04:48 ]  
Ahoj všichni, programuju v C≠ úspěšně na základě tohoto kurzu necelý týden a měl jsem ty samé problémy se spuštěním. Tímto způsobem programovat jsem vlastně původně chtěl jen proto, že budu moci psát programy na jakémkoli počítači kolem mne, ale stejně nějaké instalace jsou potřeba. Tak jsem to vyřešil instalací zdarma produktu Microsoft Visual Studio Community (mám nový poč. tak to jde, protože nároky 1,6 GHz s 4GB jsou u mne na maximu, když tak budu muset přepnout na TURBO režim) který v základní verzi bez doinstalovávání mám v sobě jazyky C≠, C++ (ten se asi budu muset taky našrotit, firmy ho chtějí) a Visual Basic. NET.
Pro tyto maličké výukové zdrojáčky zkusím (nevím, snad půjde??) příště spouštět program without debugging a napsaný zdroják vždy přepisovat novým zdrojákem, abych nemusel pro každý tento pidi zdrojáček z tohoto VYBORNEHO kurzu zakládat projekt v Studiu
Zpět k dotazu: Možné řešení je instalace Microsoft Visual Studio Community (1,4 GB na disku)
pls [Jirka, 21.1.2010 21:15:42 ]  
když do příkazového řádku napíšu "csc PrvniProgram.cs" tak mi to napíše "csc není názvem vnitřního ani vnějšího příkazu, spustitelného programu nebo dávkového souboru" pls poraďte co s tim
ZDAR IVANE! [Svan Itudnička, 18.2.2009 0:06:45 ]  
Tento diskuzní příspěvek naobsahuje vlastní zprávu.
Normální? [TongPo, 13.10.2006 8:23:07 ]  
Je normální že se s tim seru celý den a vono na konec to vyflusne 20 chyb?
Řešení [Petr, 26.5.2006 10:36:13 ]  
Měl bych dotaz.. druhý příklad se mi povedl hned na poprvé, ale zkusil jsem použít i trochu jiný postup a chtěl bych se zeptat zda-li je to možné psát i takhle: using System; namespace JesteDulezitejsiProstor { namespace VelmiDulezityProstor { class VelmiDulezitaTrida { static void Main() { Console.WriteLine("Pozdrav z velmi dulezite tridy"); Console.ReadLine(); } } } }
namespace MojeVyuka [tesarikv, 18.10.2005 22:38:47 ]  
K čemu je tento příkaz?

Vyhledávání
Související kapitoly
Jmenné prostory
Přehledné uspořádání kódu do logických celků
Více o kompilátoru C#
Použití kompilátoru jazyka C# csc.exe
Vstup a výstup v konzolové aplikaci
Více o konzolovém vstupně/výstupním rozhraní (I/O rozhraní)
Přečtěte si knihu
C# Programujeme profesionálně
Robinson S., Allen K. S., Cornes O., Glynn J., Greenvoss Z., Harvey B., Nagel Ch. a další
Computer Press 2003

Programování v Microsoft .NET - Webové aplikace
Prosise, Jeff
Computer Press 2002

Programování Microsoft Windows v jazyce C#
Charles Petzold
Computer Press 2003
Programovací jazyk C# | Programování Windows Forms | Architektura .NET | ASP.NET | Dodatky | Diskuze
RNDr. Dušan Kovář, Ph.D.
Gymnázium Olomouc-Hejčín