Diskuze: C# - void, string() a metoda return
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 5 zpráv z 5.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.



Nemůžeš nic vracet z metody, co má návratovou hodnotu typu void. Void
prostě znamená, že něco provedeš, ale nic nevrátíš 
Filipe, máš v tom trošičku zmatek, takže to vezmu polopatě:
1. Jaká je vlastně definice metody void? Můžu místo ní používat jenom konstruktory nebo má oproti nim nějaké výhody?
Definice je jasná, v té nejzákladnější podobě:
void JmenoMetody()
{
}
Dále se ještě obvykle vždy uvádí přístupový modifikátor, tedy public, private nebo protected. Do závorek se pak píšou parametry metody, které metoda potřebuje znát, aby se mohla provést. Tím, že je void, nic nevrací, tedy jen něco udělá, ale výsledek této činnosti se jen někde projeví, metoda nám ho nesdělí.
Konstruktor je trošku jiná záležitost. Ten se volá ve chvíli, kdy potřebuješ zavést do operační paměti novou instanci nějaké třídy. Opět mu můžeš předat nějaké parametry, ale nikdy nepoužiješ klíčového slova void - konstruktor defakto vrací tu novou instanci, ale jak jistě víš, musí se volat pomocí klíčového slova new.
Naproti tomu metoda s návratovým typem void zavolaná na nějaké instanci nic nevrací, ale pouze buď nějak modifikuje danou instanci (např. změní nějakou její vlastnost) a nebo ji nechá něco vykonat s tím, že ten výsledek se projeví jinde, jak jsem psal výše.
2. Dva různé zápisy stringu
Ve skutečnosti se nejedná o dva různé zápisy stringu. To první je uložení stringu do proměnné se jménem Text:
public string Text = "Text";
To druhé je deklarace veřejné metody se jménem Text, která je bezparametrická a její návratový typ je string:
public string Text()
{
//Nějaky kod
}
Takovou metodu bych osobně pojmenoval spíš GetText, aby bylo z názvu patrné, o co asi půjde. Upozorňuji, že je to metoda s návratovým typem, tedy musí všechny větve jejího kódu končit klíčovým slovem return a za ním nějaký string, např.
public string GetText()
{
return "Hello, World!";
}
3. Jak funguje metoda return?
return je klíčové slovo, kterým se ukončuje vykonávání metody. Jakmile se při průběhu metody narazí na slovo return, výkon metody tímto okamžikem končí. Pokud má metoda deklarovaný jiný návratový typ, než void, musí bezprostředně za slovem return následovat, co se vrací. Např. jak jsem nakousl u minulé otázky string, nebo bool v tvém ukázkovém příkladu.
Teď ta druhá metoda - nemůžeš navracet proměnnou v metodě, která je typu void, tedy nenávratová!
public int x;
public void Vypocti(int a, int b)
{
x = a + b;
}
A naopak
public int Vypocti(int a, int b)
{
return a + b; //můžeš přeskočit zbytečnou proměnnou x
}
Ještě ukázka použití slova return v metodě void:
public int x;
public void Vypocet(int a, int b)
{
x = a + b;
if (x < 12) return;
else x = x + b;
}
Děkuji všem za rady
Už
je mi to jasné.
Zobrazeno 5 zpráv z 5.