Programovací jazyk C#
Poznámka: tato otázka je víc praktická a půjde z velké části o popis kódu
Osnova
- vlastnosti
- .NET
- vývojová prostředí
- základní syntaxe
Vlastnosti
- multiparadigmatický programovací jazyk
- imperativní i deklarativní
- objektově orientovaný
- funkční
- …
- z rodiny C jazyků
- možnost souborových i projektových aplikací
- souborová: .cs soubor (např. skript)
- projektová: .csproj (může zahrnovat více zdrojových souborů, aplikace)
- vytvořen a vyvíjen společností Microsoft
- o správu paměti se stará garbage collector
- kód je kompilovaný do Common Intermediate Language (CIL)
- C# je silně typovaný (strong typing) a staticky typovaný, což znamená, že typ proměnné je znám již při kompilaci a musí být striktně dodržován, což pomáhá zachycovat chyby v rané fázi vývoje
- typová inference je však možná pomocí slova var
- jazyk je postaven na principech objektově orientovaného programování (OOP), plně podporuje dědičnost, polymorfismus, zapouzdření a abstrakci.
- je nedílnou součástí platformy .NET, která mu poskytuje rozsáhlou knihovnu tříd, běhové prostředí a možnost jazykové interoperability s jinými .NET jazyky.
- spouštění C# aplikací zajišťuje běhové prostředí Common Language Runtime (CLR)
- CLR je virtuální stroj, který se stará o řízení běhu aplikace, ošetřování výjimek, bezpečnost a také o Just-In-Time (JIT) kompilaci, která převádí CIL kód do nativního strojového kódu těsně před spuštěním.
By Deviousasti - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=88880454
- celý systém C# a .NET se řídí standardem Common Language Infrastructure (CLI), který definuje specifikace pro běhové prostředí a formáty spustitelných souborů.
- díky .NET je C# multiplatformní a umožňuje vývoj široké škály aplikací
- webové aplikace (ASP.NET Core)
- desktopové aplikace (Universal Windows Platform, WPF, Windows Forms)
- mobilní aplikace (Xamarin, .NET MAUI)
- herní engine Unity
- IoT řešení
.NET
- opensource, zdarma
- framework
- vyvíjen primárně zaměstnanci Microsoftu
- vznik společně s C#
- podpora více jazyků
- C#
- F#
- meziplatformní využití
- webové aplikace (ASP.NET Core)
- CLI aplikace
- knihovny
- desktopové aplikace (Universal Windows Platform)
- package manager: NuGet
- distribuce knihoven a nástrojů
Vývojová prostředí
- Visual Studio
- integrované vývojové prostředí
- od Microsoftu
- freemium – zdarma pro jednotlivce
- na školních počítačích
- Rider
- integrované vývojové prostředí
- od Jetbrains
- placené
- Visual Studio Code
- potřeba instalovat kupu pluginů
- od Microsoftu
- zdarma
Základní syntaxe
- using
- import knihoven
- balíček System
- namespace
- container pro třídy a další namespace
- slouží pro organizaci
- proměnné a typy
- typ jméno = hodnota;
- lze využít rezervované slovo „var“ – typová inference
- compiler odvodí typ proměnné
- např. string a = “ahoj” je ekvivalentní k var a = “ahoj”
- typy hodnot
- struktury, výčty a předdefinované číselné typy
- uchovávají svá data přímo
- patří sem: int, bool, float, …
- primitivní datové typy
- pozor: string je odkazový typ i když se může zapisovat s malým počátečním písmenem
- odkazové typy
- obsahují odkaz na objekt ve spravované haldě
- (vpodstatě odkaz na objekt v paměti)
- všechny proměnné odkazují na stejný objekt
- příklad:
- mám proměnnou pepa
- vytvořím proměnnou svalovec a nastavím, že svalovec = pepa
- obě proměnné teď odkazují na stejný objekt
- svalovec.pozdrav() je stejné jako pepa.pozdrav()
- třídy, pole, delegáty (metody jako argumenty – lambda, callbacky) a řetězce
- obsahují odkaz na objekt ve spravované haldě
- tabulka
- omezení přístupu: (v kontextu tříd)
- public
- private
- protected
- private/protected internal – omezení na aktuální assembly
- nelze přistupovat odjinud než z aktuálně spuštěného projektu
- loopy
- for, foreach
- while, do-while
- rozdíl:
- while loop nejdřív kontroluje boolean (může být přeskočen pokud neplatí kondice)
- do-while až potom (spustí se alespoň jednou vždy)
- rozdíl:
- accessory
- get, set
- povolení měnit např. private proměnné
- static
- proměnná/funkce bude patřit typu, ne instanci
- lze aplikovat i na třídu
- konstanty
- const
- public const String Version = “v1.0.0”
- dědičnost
- využití symbolu dvojtečky :
- class Car : Vehicle
- pokud chceme zakázat: sealed
- sealed class Vehicle
- předchozí příklad už nejde udělat, hodí to error
- abstraktní třídy: abstract
- definice metody je pak na dítěti
- využití symbolu dvojtečky :
- přístup k IO: Console
Zdroje
- BILLWAGNER. Built-in types - C# reference. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/built-in-types
- BILLWAGNER. C# Keywords and contextual keywords - C# reference. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
- BILLWAGNER. Iteration statements -for, foreach, do, and while - C# reference. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statements/iteration-statements
- BILLWAGNER. static modifier - C# reference. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/static
- BILLWAGNER. Systém typů jazyka C# - C#. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/cs-cz/dotnet/csharp/fundamentals/types/
- BILLWAGNER. The base keyword - C# reference. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/base
- BILLWAGNER. Using Properties - C#. In: [cit. 29.03.2026]. Dostupné z: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/using-properties
- C++/CLI. In: Wikipedia [online]. 2025 [cit. 29.03.2026]. Dostupné z: https://en.wikipedia.org/w/index.php?title=C%2B%2B/CLI\&oldid=1314679652
- C# Inheritance. In: [cit. 29.03.2026]. Dostupné z: https://www.w3schools.com/cs/cs_inheritance.php
- C Sharp (programming language). In: Wikipedia [online]. 2026 [cit. 29.03.2026]. Dostupné z: https://en.wikipedia.org/w/index.php?title=C_Sharp_(programming_language)\&oldid=1344058409
- C# Syntax. In: [cit. 29.03.2026]. Dostupné z: https://www.w3schools.com/cs/cs_syntax.php
- .NET. In: Wikipedia [online]. 2026 [cit. 29.03.2026]. Dostupné z: https://en.wikipedia.org/w/index.php?title=.NET\&oldid=1342765345