Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
C# (vyslovované anglicky jako C Sharp, /siː ʃʌɹp/, doslova to označuje notu cis) je vysoce úrovňový objektově orientovaný programovací jazyk vyvinutý firmou Microsoft zároveň s platformou .NET Framework, později schválený standardizačními komisemi ECMA a ISO. Microsoft založil C# na jazycích C++ a Java (a je tedy nepřímým potomkem jazyka C, ze kterého čerpá syntaxi).
C# lze využít k tvorbě databázových programů, webových aplikací a stránek, webových služeb, formulářových aplikací ve Windows, softwaru pro mobilní zařízení (PDA a mobilní telefony) atd.
Obsah |
Standard ECMA[1] definuje současný design C# takto:
Jazyk C# je navržen tak, aby co nejvíce zohledňoval strukturu Common Language Infrastructure (CLI), se kterou je používán. Většina základních typů v C# přímo odpovídá základním typům v platformě CLI. Návrh jazyka ale nevyžaduje, aby překladač generoval Common Intermediate Language (CIL) nebo jiný konkrétní formát. Teoreticky je možné, aby překladač vytvářel strojový kód podobný běžným překladačům jazyka C++ a jiných, ale v praxi všechny překladače jazyka C# generují CLI.
První verze vydaná v roce 2002 společně s .NET Frameworkem 1.0 obsahovala základní podporu objektového programování, ve které vycházela z jazyka C++ a zkušeností s jejich aktualizací v jazyce Java.
Na další verzi se čekalo až do konce roku 2005. Mezi její nové vlastnosti patří:
Vyšel na konci roku 2007 společně s .NET Frameworkem 3.5 a Visual Studiem 2008. Obsahuje poměrně revoluční změny, které však nevyžadují změnu podkladového IL, takže aplikace v něm psané půjdou spouštět i na počítačích vybavených toliko druhým Frameworkem, ponesou-li si s sebou patřičné knihovny.
Následující jednoduchá aplikace vypíše „Ahoj, světe!“ na standardní výstup konzolové aplikace.
using System; namespace MojeKonzolováAplikace { class HlavníTřída { static void Main(string[] args) { Console.WriteLine("Ahoj, světe!"); } } }
Rozeberme krátce jednotlivé příkazy. Třídy, základní jednotky objektového programování, jsou v C# rozděleny pro lepší orientaci a jednoznačnost názvů do jmenných prostorů. Na počátku zdrojového kódu jmenujeme příkazem using jmenné prostory, jež budeme používat — nebudeme pak muset rozepisovat jejich název, všechny třídy z nich jsou nám hned přístupny.
Na dalším řádku příkazem namespace říkáme, že chceme zařadit kód vymezený následujícími složenými závorkami do jmenného prostoru MojeKonzolováAplikace. Hned poté definujeme klíčovým slovem class třídu Hlavní třída, její obsah bude opět vymezen dalšími složenými závorkami. Kód není nutné odsazovat (bílé znaky se ignorují), jen je to praktické.
Všimněme si také, že identifikátory mohou obsahovat písmenka s háčky a čárkami — je tomu tak již od prvních verzí jazyka.
Překladač hledá při vytváření spustitelného souboru vstupní bod aplikace. Musí se jednat o statickou metodu nevracející žádnou hodnotu nebo typ int (celé číslo), která buď nepřebírá žádné argumenty, nebo pole řetězců (stringů) a která se jmenuje Main. Deklaraci takové metody vidíme na dalším řádku program. Klíčové slovo static znační statickou metodu, tedy takovou část kódu, kterou je možno volat bez vytvoření instance třídy. Klíčové slovo void značí, že metoda nic nevrací.
Argumenty metody se vypisují do obyčejných závorek za její název. Podobně jako při deklarování proměnných se nejdříve uvádí typ proměnné (string[]) a pak její název (args). Pole značíme dvojicí hranatých závorek za názvem typu.
Tělo metody tvoří jediný řádek ukončený středníkem. Volá statickou metodu třídy Console (sídlí ve jmenném prostoru System) jménem WriteLine, která za argument pojímá jedinou proměnnou typu string, kterou vypíše uživateli do konzole. Řetězce se ohraničují počítačovými uvozovkami.
| Programovací jazyky | |||
|
ABAP | Ada | AppleScript | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang | Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal | Pawn | Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic / VBScript | VB.NET | Visual FoxPro
|