Test Gorila

Odkaz na ktest

Pro začátečníky

  1. Jaká je role C#?

    Úlohou C# jako programovacího jazyka je přesně definovat sadu operací, které může počítač provést, aby dokončil úkol. Používá se k vytváření aplikací pro stolní počítače, mobilních aplikací, webových aplikací, webových stránek a webových služeb.

  2. Co znamená objektově orientované programování?

    Objektově orientované programování (OOP) je přístup k programování, kde je software primárně navržen pomocí objektů (v podstatě dat), které se vzájemně ovlivňují. Když se různé části dat spojí dohromady, vytvoří software jako celek. OOP je alternativou k funkčnímu nebo procedurálnímu programování a je to také přístup používaný C#.

  3. Jaký je rozdíl mezi spravovaným a nespravovaným kódem?

    Spravovaný kód je spouštěn Common Language Runtime (CLR) rozhraní .NET Framework, zatímco nespravovaný kód je spouštěn operačním systémem (OS).

  4. Jak se C# liší od C?

    Nejvýznamnější rozdíl mezi C# a jeho předchůdcem, C, je ten, že C# je objektově orientovaný programovací jazyk, zatímco C je procedurální programovací jazyk.
    Některé další rozdíly zahrnují:
    C se nejlépe hodí pro hardwarové aplikace a systémové programování, zatímco C# se používá pro desktopové a mobilní aplikace a také webové služby
    C čerpá pouze z 32 různých klíčových slov, zatímco C# jich má 87
    C klade větší důraz na funkce, zatímco C# je více orientováno na design

  5. Co je objekt v C#?

    Instance třídy. Má své metody a vlastnosti. Vlastnosti mohou být neměnné (RO) nebo proměnné. Třídy se instanciují pomocí klíčového slova new a jejich život začíná vždy spuštěním konstruktoru/ů a je zakončen destruktorem

  6. Co je to třída v C#?

    Je část kódu deklarovaná klíčovým slovem class a unikátním názvem. Za běhu programu může být následně instanciována do objektu (pomocí new) a to i vícekrát. Dalo by se říci je že třída je srozumitelná pro člověka a objekt pro počítač

  7. Co je metoda v C#?

    Blok kódu, který obsahuje instrukce a může vracet návratovou hodnotu. Metody jsou deklarovány v rámci třídy (nebo struktury). řeší nějaký přesný úkol, nebo čsto se opakující sekvenci přílazů. Tvorba, úprava a hledání chyb v metodách je podstatná část práce programátora.

  8. Co se rozumí strukturou v C#?

    V C# je struktura složený typ dat sestávající z různých datových typů, včetně metod, polí, konstruktorů, konstant, vlastností, indexerů, operátorů a dokonce i dalších struktur. Struktura pomáhá spojit různé datové typy do jedné jednotky. Tímto způsobem jsou podobné třídám. Avšak zatímco třídy jsou referenční typy, struktury jsou typy hodnot.

  9. Jak se kompiluje kód v C#?

    Když je projekt vyvinut, zdrojový kód C# je zkompilován do Intermediate Language (IL). IL je sada instrukcí, která vytváří strojový kód pro provedení na strojovém procesoru. Ve čtyřech krocích se kód přesune z preprocesoru do kompilátoru, do assembleru a nakonec do linkeru

  10. Co je zpracování souborů v C#?

    Manipulace se soubory je proces ukládání informací na disk pro externí úložiště. Uložený soubor obsahuje bajty dat a je k dispozici pro pozdější načtení

  11. K čemu slouží kontrolní příkazy v C#?

    Řídicí příkazy se používají k řízení akcí, které program provádí; Sekvence, iterace, rozhodovací bloky. Mezi běžné akce v C# patří volání metod, přiřazování hodnot, deklarace proměnných a procházení kolekcí

  12. Co znamená garbage collection v C#?

    V C# je garbage collection proces správy paměti v aplikaci. Kolektor uvolnění paměti automaticky odstraní paměť, která se již nepoužívá, aby zpřístupnila paměť pro nové alokace.

  13. Co je konstruktor v C#?

    V C# je konstruktor typem metody, která tvoří součást třídy. Hlavním účelem konstruktoru je inicializovat pole třídy. Jsou vyvolány automaticky při vytvoření nového objektu třídy.

  14. Co je to destruktor v C#?

    V C# je destruktor typ metody, která tvoří součást třídy. Hlavním účelem destruktoru je zničit instance třídy, když již nejsou potřeba, aby se uvolnila paměť

  15. Co je pole v C#?

    V C# je pole kolekce dat, která ukládá pevný počet hodnot stejného datového typu.

  16. Co je to konstanta v C#?

    Konstanty jsou pevné hodnoty, které nelze během životnosti programu měnit. Například konstanta „Měsíce“ je vždy 12 a nelze ji změnit

  17. Co je indexer v C#?

    Indexery používají k indexování instancí třídy nebo struktury. K indexovaným hodnotám pak lze snadno přistupovat jako k poli, ale bez explicitního určení typu nebo člena instance. Třída samo o sobě je Array.

Pro pokročilé

  1. Jaké jsou různé typy tříd v C#?

    Standardní, Abstraktní, partial, statické, zapečetěné (sealed).
    Abstraktní třídy poskytují společnou definici základní třídy, ze které lze odvodit další třídy.
    Partial - umožňují rozšíření základní třídy, lze tak např. poskládat jednu třídu z několika souborů - vhodné pro dopsání si vlastních metod.
    Statické - obsahují alespoň jeden statický prvek (proměnnou, metodu).
    Sealed - nelze z nich dědit.

  2. Jaký je rozdíl mezi poli (fields) a vlastnostmi (properties)v C#?

    Field je část třídy určená pro úschovu hodnoty určitého typu (nebo objektu). Property je speciální metoda pro načtení, uložení (get/set) proměnné, kde během obou procesů může probíhat dodateční manipulace s ostatními proměnnými třídy.

  3. Co jsou kruhové odkazy v C#? (circular reference)

    Dva nebo více zdrojů na sebe navzájem odkazují.

  4. Co znamená sdružování objektů (object pooling) v C#?

    Je to návrhový vzor, kdy jsou objekty recyklovány nebo drženy déle v paměti, než aby byly neustále vytvářeny a zase ničeny. Aplikace (programátor) drží vybrané objekty ve fondu připravené k použití, když si je aplikace vyžádá. Tento proces pomáhá zlepšit výkon minimalizací zbytečného vytváření objektů.

  5. Jaké jsou různé typy řídicích příkazů v C#?

    Sekvence (blok kódu), Selekce, Iterace, Skok

  6. Co je přetěžování metod v C#? (overloading)

    Volání více metod se stejným názvem. O tom jaká z metod bude vybrána rozhoduje počet nebo typ argumentů. (polymorfismus). Přetížení metod zlepšuje čitelnost programu snížením počtu jmen spojených s konkrétní akcí.

  7. Co je to boxování a unboxing v C#?

    V C# umožňuje box a unboxing vývojářům převádět datové typy .NET z referenčního typu na typ hodnoty a naopak. Unboxing se používá k převodu typu reference na typ hodnoty, zatímco boxing se používá k převodu typu hodnoty na typ reference. Tyto dva procesy podporují jednotný pohled na C#.

  8. Jaký je rozdíl mezi klíčovými slovy ref a out v C#?

    Klíčová slova ref a out jsou podobná v tom, že se obě používají k předávání argumentů v odkazu nebo funkci. Je tu však jemný rozdíl. ref - je hodnota již nastavena, což znamená, že metoda ji může číst a upravovat. out není hodnota nastavena a nelze ji číst metodou, dokud není nastavena, což znamená, že ji metoda musí nastavit, než ji lze vrátit

  9. Jak se v C# vytvářejí uživatelské ovládací prvky?

    Uživatelské ovládací prvky jsou části kódu určené pro komunikci s uživatelem. Pokud chceme vytvořit vlastní ovládací prvek, např, proto že se bude často opakovat během zadávání, nebo proto že potřebujeme mít unikátní UC, postupujeme zpravidla tak, že poskládáme několik systémových UC dohromady a spojíme jev jeden celek, který můžeme dále používat v různých částech programu, nebo v jiných programech. Né tak častý způsob tvorby UC je jeho vytvořením, kdy se musíme programovat inicializaci, vykreslování, interakci s uživatelem i programátoským prostředímm (design).

  10. Kdy by měly být v C# použity typy s možnou hodnotou Null?

    V C# se typy s možností null používají k reprezentaci nedefinované hodnoty základního typu. V podstatě znamená „žádná hodnota“ a obecně se používá, když pro pole nejsou k dispozici (zatím) žádné hodnoty.

  11. Jak je v C# implementována serializace?

    V C# je serializace proces převodu objektu na proud bajtů pro uložení do paměti, databáze nebo souboru. To umožňuje vývojáři uložit stav objektu pro budoucí použití.Serializaci lze modifikovat aby bylo indikováno, že instance tohoto typu lze serializovat [Serialiable()],[NoSerializable()]. Všechna veřejná a soukromá pole takto označená jsou pak standardně serializována.

  12. Jaký je rozdíl mezi String a StringBuilder v C#

    Řetězcový objekt je neměnný (imutable), což znamená, že jej po vytvoření nelze změnit. Jakákoli operace, která se pokusí upravit objekt typu string, jednoduše vytvoří nový objekt typu string. Na druhou stranu je objekt StringBuilder proměnlivý (mutable) a lze jej upravit, jak vývojář uzná za vhodné.

  13. Jak se reflexe používá v C#?

    V C# se reflexe používá k získání metadat o typech proměnných za běhu. Jinými slovy, umožňuje vývojářům získat data o načtených sestavách a typech v nich. mplementuje se pomocí dvoufázového procesu. Nejprve získáte objekt typu. Zadruhé použijete typ k procházení členů, jako jsou metody a vlastnosti.

  14. Jaké jsou výhody generik v C#?

    V C# generika umožňují vývojářům definovat třídy a metody, které lze použít s jakýmkoli datovým typem. To přináší několik výhod:

  15. Jaké jsou nevýhody generik v C#?

  16. Jaké jsou základní rozdílu mezi Array a ArrayList v C#?

    ArrayList má širší možnosti než Array. Array má pevný počet prvků, zatímco do ArrayList je možné s prvky manipulovat (Add/Remove). Umožňuje ukládat prvky různých typů, Akceptuje i null hodnoty. Na druhou stranu je pomalejší

Pro Experty

  1. Jak se v C#používají různé typy kontrolních příkazů?

    35. Ukázková odpověď: Každý typ ovládacího příkazu má vlastní sadu syntaxe, která se používá k vyvolání příkazu: Mezi příkazy výběru patří , , , a Iterační příkazy zahrnují , , , a Příkazy Jump zahrnují , , , a

  2. Kdy by se mělo multithreading používat a kdy by se měl v C#vyvarovat?

    Vícevláknové zpracování neboli zpracování vláken může být dobrým způsobem, jak zlepšit výkon programu, ve kterém běží několik operací současně. Umožňuje běžným vláknům běžet ve vlastní čas, místo aby museli čekat na dokončení předchozího kroku. To má potenciál urychlit program. Vícevláknové zpracování se však nedoporučuje, když je většina procesů programu vzájemně závislá. Pokud by byl například krok B závislý na předchozím dokončení kroku A, vícevláknové zpracování by vedlo k problémům s výkonem a vytvářelo chyby v programu. Jak se program stává složitějším, stává se závitování jemnější operací.

  3. Co je to multicast delegát v C#?

    Na rozdíl od jednoduchého delegáta delegát vícesměrového vysílání v C# odkazuje na více cílových metod. Když je použit delegát vícesměrového vysílání, jsou vyvolány všechny funkce, na které delegát ukazuje. Jsou implementovány pomocí třídy MulticastDelegate, která je odvozena ze systému.

  4. Jak byste vysvětlil čtyři základní pojmy objektově orientovaného programování?

    Čtyři základní koncepty objektově orientovaného programování lze vysvětlit následovně: Zapouzdření (encapsulation) je sdružování dat, včetně metod, které s těmito daty pracují, do jediné soukromé jednotky Polymorfismus je schopnost typu nabývat mnoha podob pomocí jediného rozhraní Abstrakce je skrytí nepotřebných detailů programu tak, aby uživatel viděl pouze podstatné atributy Dědičnost je proces, kdy jedna třída odvozuje (nebo dědí) své atributy a metody od jiné

  5. Jak je implementován návrhový vzor singleton v C#?

    Návrhový vzor singleton zajišťuje, že existuje pouze jeden objekt svého druhu, a poskytuje k němu globální přístup pro jakýkoli jiný kód. Tento návrhový vzor lze implementovat mnoha způsoby, pomocí:

  6. Jaký je rozdíl mezi pozdní vazbou a ranou vazbou v C#?

    Klíčové rozdíly mezi ranou a pozdní vazbou jsou: K časné vazbě dochází v době kompilace, zatímco k pozdní vazbě dochází za běhu Včasná vazba používá informace o třídě k vyřešení volání metody, zatímco pozdní vazba používá k vyřešení volání metody objekt Výkon pozdní vazby je obvykle pomalejší než časná vazba, protože k ní dochází za běhu

  7. Jak se HashSet používá v C#?

    V C# je HashSet neuspořádanou sbírkou odlišných hodnot. Obecně se používá k zabránění umístění duplicitních prvků do kolekce a při dosahování tohoto cíle funguje lépe než seznam. Je implementován pomocí třídy HashSet, která je odvozena od System.

  8. Kdy se v C# používá přepisování metody (override)? (pozor overload je přetížení)

    V C# se přepisování metody používá k vyvolání funkcí, které patří do různých tříd. Tento proces vytvoří metodu v odvozené třídě se stejnou signaturou jako metoda v základní třídě bez úpravy kódu základní třídy. To pomáhá dosáhnout polymorfismu za běhu.

  9. Jaký je rozdíl mezi klíčovými slovy Const a ReadOnly v C#?

    Mezi klíčovými slovy Const a ReadOnly v C# je několik rozdílů. Tyto zahrnují: ReadOnly je konstanta používaná za běhu, zatímco Const je konstanta používaná v době kompilace Hodnoty ReadOnly lze změnit, zatímco hodnoty Const nelze změnit ReadOnly nelze deklarovat uvnitř metody, zatímco Const ano

  10. Jak se do aplikace v C# přidávají vlastní ovládací prvky?

    Vlastní ovládací prvek je navržen pro jednorázové použití v konkrétní aplikaci. Existují tři hlavní způsoby, jak vytvořit nový vlastní ovládací prvek: Odvozte jej z existujícího uživatelského ovládacího prvku Seskupte existující ovládací prvky do nového zkompilovaného ovládacího prvku Vytvořte nový ovládací prvek odvozením od třídy System.Windows.Controls.Control

  11. Co znamená vkládání závislostí (DI) v C#?

    V C# je vkládání závislostí (DI) návrhový vzor používaný k vývoji volně vázaného kódu. Tento proces přesune vytváření a vazbu závislých objektů mimo třídu, která na nich závisí. Hlavním účelem je, aby budoucí změny kódu byly lépe spravovatelné.

  12. Jak lze v C# opravit cyklické odkazy (circular reference)?

    V C# se cyklické odkazy nejčastěji řeší pomocí garbage collection. Odpadkový koš systematicky detekuje a sbírá kruhové reference. Mezi další řešení problémů s cyklickými odkazy patří metody zpětného volání, obslužné rutiny událostí a vkládání závislostí.

  13. Jak lze nastavit třídu tak, aby byla zděděna bez přepsání metody v C#?

    Pokud metoda není virtuální, nebude přepsána. Pokud však třída dědí ze základní třídy, která obsahuje virtuální členskou funkci, můžete použít modifikátor , abyste se vyhnuli dalšímu přepisování této členské funkce.

  14. Jaké jsou různé techniky přetížení metody v C#?

    Přetížení metody lze dosáhnout třemi následujícími způsoby: Použitím různých typů dat pro parametry v metodě Změnou počtu parametrů v metodě Změnou pořadí parametrů v metodě

  15. Jak se v C# provádí zpracování výjimek?

    V C# pomáhá zpracování výjimek detekovat chyby v kódu za běhu. Proces je implementován pomocí čtyř různých klíčových slov: identifikuje bloky kódu, kde jsou aktivovány výjimky zachytí výjimky, které byly identifikovány pomocí provede danou sadu příkazů v závislosti na tom, zda je výjimka vyvolána nebo ne vyhodí výjimku

  16. Jaký je rozdíl mezi výjimkou throw a klauzulí throw v C#?

    Základní rozdíl je v tom, že výjimky typu throw přepisují trasování zásobníku, zatímco klauzule throw uchovávají informace o zásobníku. Jako takové je mnohem těžší získat původní kód zodpovědný za vyvolání výjimky pomocí výjimek.

1.) rozdiel medzi abstraktnou triedou a interfaceom (to je snad na kazdom pohovore) 2.) co je to GAC 3.) genericke typy (boxing, unboxing) 4.) static class vs singleton 5.) internal, protected, public, private, sealed 6.) je mozne vytvorit instanciu abstraktnej triedy (toto je celkom na polemiku, pretoze ak vytvoris triedu odvodenu od abstraktnej triedy a vyrobis jej instanciu, tak by sa mala vytvorit aj instancia tej abstraktnej - to si myslim, ak sa mylim, opravte ma, dakujem) 7.) sql - urcite instert, join, select 8.) async a await ako funguje 9.) immutable a mutable typy 10.) rozdiel medzi string a StringBuilder

Zkratky