====== Programovací jazyk C# ====== **C#** je silně typovaný, [[it:sw:oop|objektově orientovaný]] jazyk navržený pro vývoj široké škály aplikací běžících na platformě .NET. Jeho autorem je Anders Hejlsberg a od svého uvedení v roce 2002 prošel bouřlivým vývojem až k dnešní multiplatformní podobě. ===== 1. Klíčové vlastnosti jazyka ===== * **Silná typová kontrola:** C# je typově bezpečný jazyk. Většina chyb je odhalena již při kompilaci, což zvyšuje stabilitu aplikací. * **Automatická správa paměti:** O uvolňování objektů se stará [[it:sw:garbage_collector|Garbage Collector]], čímž se minimalizují úniky paměti. * **Asynchronní programování:** Pomocí klíčových slov `async` a `await` umožňuje psát vysoce výkonné aplikace, které neblokují hlavní vlákno (vhodné pro síťovou komunikaci a GUI). * **LINQ (Language Integrated Query):** Revoluční nástroj pro dotazování do dat (kolekcí, XML, SQL databází) přímo v syntaxi jazyka. * **Interoperabilita:** Snadná komunikace s jinými jazyky a nízkoúrovňovým kódem (pomocí P/Invoke). --- ===== 2. Syntaxe a struktura ===== Syntaxe C# vychází z rodiny jazyků C (C++, Java), což usnadňuje přechod vývojářům z těchto platforem. ==== Příklad jednoduchého kódu: ==== using System; namespace MojeAplikace { class Program { static void Main(string[] args) { string pozdrav = "Ahoj světe"; Console.WriteLine(pozdrav); } } } --- ===== 3. Datové typy v C# ===== C# rozděluje typy do dvou hlavních kategorií, což určuje, jak se s nimi pracuje v paměti: ^ Kategorie ^ Typy ^ Umístění v paměti ^ | **Hodnotové (Value)** | `int`, `bool`, `double`, `struct`, `enum` | [[it:sw:stack_vs_heap|Stack]] | | **Referenční (Reference)** | `string`, `class`, `interface`, `delegate` | [[it:sw:stack_vs_heap|Heap]] | --- ===== 4. Moderní prvky (C# 9.0 - 12.0) ===== Microsoft vydává novou verzi jazyka každý rok (společně s .NET). Mezi moderní vymoženosti patří: * **Records:** Speciální typy optimalizované pro neměnná (immutable) data. * **Pattern Matching:** Pokročilé větvení logiky podle typu nebo hodnoty objektu. * **Nullable Reference Types:** Ochrana proti obávané chybě `NullReferenceException`. * **Interpolace řetězců:** Snadné skládání textu: `$"Jmenuji se {jmeno}"`. --- ===== 5. Oblast využití ===== Díky své univerzálnosti najdete C# v mnoha odvětvích: 1. **Web:** [[it:sw:asp_net|ASP.NET Core]] (backend pro miliony webů). 2. **Hry:** Engine Unity (naprostá většina mobilních a indie her). 3. **Mobilní aplikace:** .NET MAUI (iOS, Android). 4. **Podnikový software:** Stabilní systémy pro bankovnictví a logistiku. ---- //Související články:// * [[it:sw:dot_net|Platforma .NET]] * [[it:sw:oop|Základy OOP]] * [[it:sw:linq|LINQ: Dotazování v C#]] //Tagy: {{tag>programming csharp dot-net oop coding development}}//