C# je objektovo-orientovaný programovací jazyk vyvinutý spoločnosťou Microsoft ako súčasť iniciatívy .NET. Bol navrhnutý na vyváženie sily jazykov C++ a Java, pričom sa zameriava na rýchly vývoj aplikácií a podporu moderných princípov softvérového inžinierstva.
- C# je jazyk pre všeobecné použitie s dôrazom na jednoduchost a modernosť.
- Podporuje silnú typovú kontrolu a automatickú správu pamäte.
- Jazyk je vhodný pre vývoj softvérových komponentov v distribuovaných prostrediach.
- Prenositeľnosť kódu a lokalizácia sú kľúčové vlastnosti jazyka C#.
- C# je zameraný na aplikácie pre hostované a embedded systémy.
C# (v angličtine si-sharp) je objektovo-orientovaný programovací jazyk vyvinutý spoločnosťou Microsoft ako časť ich iniciatívy .NET. Microsoft si za základ pre nový jazyk C# zobral C++ a jazyk Java. C# bolo navrhované s úmyslom vyvážiť silu jazyka C++ a tú spojiť s možnosťou rýchleho programovania "rapid anglictina/job-application/" class="wiki-link" title="Viac o: application">application development", ktoré ponúkali jazyky ako napríklad Visual Basic, Delphi. Tento článok popisuje jazyk tak, ako je definovaný v štandardoch ISO a ECMA, pričom nepopisuje detaily implementácie firmou Microsoft. Pre popis implementácie jazyka firmou Microsoft si pozrite heslo Microsoft Visual C#.
Ciele pri tvorbe jazyka V štandarde ECMA boli kladené nasledovné ciele pri tvorbe jazyka C#: ▪ C# bol vytváraný tak, aby bol jednoduchý, moderný, objektovo orientovaným jazykom pre všeobecné použitie. ▪ Jazyk a jeho implementácie by mali poskytovať podporu pre nasledovné princípy softvérového inžinierstva ako silná typová kontrola, kontrola ohraničenia polí, detekciu pokusov na využitie neinicializovaných premenných a automatickú správu pamäte. Dôležitými vlastnosťami je tiež robustnosť, odolnosť a produktivita. ▪ Jazyk je tvorený so zreteľom na vývoj softvérových komponentov, ktoré sú vhodné pre nasadenie v distribuovaných prostrediach. ▪ Prenositeľnosť zdrojového kódu je mimoriadne dôležitá, rovnako ako aj prenositeľnosť znalostí programátorov so skúsenosťami s jazykmi C a C++. ▪ Lokalizácia a internacionalizácia je mimoriadne dôležitá. ▪ C# je jazyk zameraný na tvorbu aplikácií pre hostované, ako aj embedded systémy s ohľadom na veľkú škálovateľnosť od veľmi veľkých systémov používajúcich sofistikované informatika/operacne-systemy-windows/" class="wiki-link" title="Viac o: operačné systémy">operačné systémy po veľmi malé zariadenia pre špecializované úlohy. ▪ Aj keď je jazyk C# plánovaný na ekonomické využívanie pamäte a procesorového času, nie je kompletne zameraný na výkonnosť a veľkosť výsledného binárneho kódu ako jazyky C alebo assembler.
História architektúry Tvorca princípov a hlavný architekt jazyka C# je Anders Hejlsberg. Jeho predchádzajúce skúsenosti s programovacími jazykmi a dizajnom frameworkov (Visual J++, Borland Delphi, Turbo Pascal) sú ľahko rozpoznateľné v syntaxi jazyka, rovnako ako aj v CLR (Common Language Runtime). Jeho analýza nedostatkov súčasných hlavných programovacích jazykov ako napríklad C++, Java, Delphi a Smalltalk, ktoré prezentoval vo svojich technických príspevkoch a rozhovoroch stáli pri zrode základov CLR a ktoré neskoršie ovplyvnili aj dizajn samotného jazyka C#. Niektoré korene a princípy samozrejme pochádzajú aj z iných programovacích jazykov.
Vlastnosti jazyka C# ako programovací jazyk v niektorých ohľadoch priamo odráža vlastnosti vrstvy CLI (Common Language slovakia-infrastructure/" class="wiki-link" title="Viac o: infrastructure">Infrastructure), ktorá leží pod ním. Tento jazyk bol priamo navrhnutý tak, aby umožňoval využitie všetkých vlastností, ktoré poskytuje CLI, na rozdiel od jazykov, ktoré majú vlastnú sytax a využívajú len podmnožinu vlastností CLI (ako napríklad Visual Basic). Väčšina typov zavedených v jazyku C# priamo korešponduje s hodnotovými typmi implementovanými v CLI frameworku, špecifikácia jazyka C# však neurčuje podmienky, ktorými sa má generovanať kód z kompilátora. To znamená, že kompilátor jazyka C# nemusí mať za cieľovú podpornú platformu priamo CLI, respektíve vôbec nemusí generovať medziprekladový jazyk MSIL (Microsoft Intermediate Language), ani žiaden iný formát. Teoreticky je možné vytvoriť kompilátor jazyka C#, ktorý bude prekladať priamo do strojového kódu ako tradičné kompilátory jazyka C++, Fortran a podobne. Pri porovnaní s jazykmi C a C++ došlo k rôznym obmedzeniam a rozšíreniam, z ktorých sú najvýraznejšie tieto: ▪ Neexistujú globálne premenné. Všetky metódy a atribúty musia patriť niektorej triede, podobne ako v iných objektovo-orientovaných jazykoch. ▪ Na rozdiel od C a C++ sa názvy premenných nesmú v uzatváracích blokoch opakovať, čo vedie k zlepšeniu čitateľnosti kódu a zamedzuje nejednoznačnostiam a zmiatnutiu pri čítaní zdrojového kódu. ▪ Namiesto globálnych funkcií ako napríklad printf() v jazyku C musia byť všetky metódy dekladované s príslušnosťou k triede. Triedy sú v drvivej väčšine organizované do menných priestorov (namespace)
Rozdiely oproti C++ ▪ Automatické uvoľnenie pamäte pri dátových typoch ▪ Trieda sa dá odvodiť len od jednej triedy, ostatné sa dajú len implementovať ako rozhrania ▪ Vlastnosti sa dajú definovať automaticky ako v príklade ... public long ValidValue { get { return nacitajHodnotuDynamicky(); } set { if(value>0 && value
🤔 Najčastejšie otázky k téme
Kto je tvorcom jazyka C#?
Tvorcom jazyka C# je Anders Hejlsberg.
Aké sú hlavné ciele pri tvorbe jazyka C#?
Hlavné ciele sú jednoduchost, modernost, silná typová kontrola a podpora pre vývoj softvérových komponentov.
Aké sú hlavné rozdiely medzi C# a C++?
C# neumožňuje globálne premenné, podporuje automatické uvoľnenie pamäte a triedy môžu byť odvodené len od jednej triedy.