Add a C# course with a side-by-side code runner.

Each lesson explains a topic and runs the edited program next to the text through the local .NET SDK.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-11 14:37:14 +02:00
commit 333085ee53
86 changed files with 2482 additions and 5 deletions

View file

@ -0,0 +1,50 @@
---
id: cs-3-rozhrani
nazev: Rozhraní
popis: Smlouva: které metody typ musí mít.
---
# Výklad
## interface
*I*
- interface nemá hotový kód, jen hlavičky metod.
- class Pes : IMluvici slíbí, že Mluv napíše.
- Jedna třída může splnit víc rozhraní. Dědit může jen jednu třídu.
> Tip: Jméno rozhraní se často píše s I na začátku: IMluvici.
## Společný typ
*seznam*
- Proměnná typu rozhraní udrží kohokoli, kdo smlouvu splnil.
- Pes a Radio nemají společného předka, ale oba umí Mluv.
- Smyčka jim rozumí přes smlouvu, ne přes původ.
> Tip: Rozhraní neříká, jak metoda funguje. To napíše až třída.
# Kód
```
IMluvici[] veci = { new Pes(), new Radio() };
foreach (IMluvici v in veci)
{
Console.WriteLine(v.Mluv());
}
interface IMluvici
{
string Mluv();
}
class Pes : IMluvici
{
public string Mluv() { return "haf"; }
}
class Radio : IMluvici
{
public string Mluv() { return "hudba"; }
}
```