NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - První objektová aplikace v C# - Hello object world

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:16.6.2012 19:59

Dík, stane se :D

Odpovědět
16.6.2012 19:59
New kid back on the block with a R.I.P
Avatar
bohmladislav
Člen
Avatar
bohmladislav:22.12.2012 12:18

Vím, že je tohle teprve začátek OOP, ale třída Zdravic určitě není psaná podle dobrých praktik, už kvůli tomu veřejně přístupnému atributu. Navíc si myslím, že by v metodě Pozdrav mělo být minimálně ošetření na null u toho textu. Jinak velmi dobrý tutorial pro začátečníky.

 
Odpovědět
22.12.2012 12:18
Avatar
lcet.m
Člen
Avatar
Odpovídá na David Hartinger
lcet.m:14.1.2013 11:41

S implicitní konverzí to nemá nic společného, uvnitř string.Format se volá prostě metoda ToString(), kterou má každý objekt.

 
Odpovědět
14.1.2013 11:41
Avatar
lcet.m
Člen
Avatar
lcet.m:14.1.2013 11:42
  • konstruktor se rozhodně nevolá kvůli prázdným závorkám jak píšeš, ale spíš díky keyword "new".
 
Odpovědět
14.1.2013 11:42
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:14.1.2013 11:45

Pokud vím, tak převodu na string se říká implicitní konverze. C# sám pozná, že někde chceme string a na objektu metodu ToString() sám na pozadí zavolá. My ji tam tedy nemusíme psát. Zafunguje např. v tomto případě:

int a = 1;
string s = a + " krát";

Naopak zde by to bez .ToString nefungovalo:

int a = 1;
string s = a.ToString();
Odpovědět
14.1.2013 11:45
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:14.1.2013 11:48

Pokud je to na mě, tak mám pocit, že jsem tam psal něco jako že závorky jsou tam z toho důvodu, že voláme konstruktor. Případně upřesni kde to v textu je.

Odpovědět
14.1.2013 11:48
New kid back on the block with a R.I.P
Avatar
lcet.m
Člen
Avatar
lcet.m:14.1.2013 11:57

No, je to trochu věc úhlu pohledu. Řekl bych to asi tak, že implicitní konverze volá ToString(), ale ne každé volání ToString je implicitní konverze.

Jde o to, že string.Format má signaturu "static string Format(string format, params object[] args)" tj. nic se nepřetypovává, object je všechno.

Píšeš "Ty prázdné závorky volají tzv. konstruktor." to jde myslím si snadno pochopit tak, že prázdné závorky znamenají volání konstruktoru.

Neber to jako rýpání, jen pro upřesnění.

 
Odpovědět
14.1.2013 11:57
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:14.1.2013 12:11

Jo, to je pravda. Bylo to myšleno tak, že konstruktor je metoda a proto tam jsou ty závorky, jelikož konstruktor voláme. Upřesním to.

Vím, že každé volání ToString() není implicitní konverze (snad to tu někde není napsané), jen říkám, že se jedná o implicitní konverzi ve chvíli, kdy to C# udělá za nás :)

Odpovědět
14.1.2013 12:11
New kid back on the block with a R.I.P
Avatar
lcet.m
Člen
Avatar
lcet.m:14.1.2013 12:14

Nojo, ale v tom je právě ta nepřesnost - jelikož do string.Format předáváš instance typu System.Object, konverzi nedělá C#, nýbrž metoda .NETu (uvnitř to konec konců implicitní konverze využívat může, ale příklad to IMHO není dobrý)

 
Odpovědět
14.1.2013 12:14
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na lcet.m
David Hartinger:14.1.2013 12:22

Pojmy C# a .NET zaměňuji, chápu, že na tvé úrovni je to rozdíl, ale ostatní mi to jistě prominou :) Podstatné je, že proběhne implicitní konverze na string, tedy převod objektu na stringovou hodnotu. Takto to nazývá i kompiler, když hubuje, že v nějakém případě ji provést nelze.

Odpovědět
14.1.2013 12:22
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 217.