Diskuze: Obecné pojmy
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Parsing is the process of analysing a string of symbols, either in natural
language or in computer languages, conforming to the rules of a formal
grammar.
Parsuje se vždy nějaký text. Jak je zmíněno, podle pravidel gramatiky (k
tomu je ale potřeba více teoretických znalostí).
Přetypování se provádí mezi typy (například z int do float).
No to jo, ale podle z tohoto jsou to pochopil krapet jinak
http://www.itnetwork.cz/…a-parsovani/
To je samozřejmě špatně. Definice je výše (z wikipedie) - musí se
jednat o "řetězec symbolů". Když chceš z floatu dostat int, nenapíšeš
"Int32.Parse(nejakyFloat);" ale "nejakyInt = (int)int;" popřípadě
"nejakyInt = nejakyFloat.ToInt32();"
viz https://msdn.microsoft.com/….110%29.aspx a https://msdn.microsoft.com/….110%29.aspx.
Skutečně se jedná o dva rozdílné pojmy.
Díky, už to (asi) chápu.
Ale proč je tedy Convert.ToInt32 a int.Parse,
když pomocí toho dosáhnu stejného výsledku?
Díky moc, vše pochopeno
Convert je trošku zavádějící, ale v poznámkách je napsáno, že pouze interně volá Int32.Parse, takže je to ekvivalentní
Jsou to dvě naprosto rozdílné věci, schválně si zkus přetypovat číslo ve stringu na int
int i=(int)"6";
Ani tě to nenechá zkompilovat.
Parsování znamená, že převedeš něco na něco jiného, ikdyž normálně
jsou obě věci neslučitelné- třeba xml soubor převedeš na nějaký objekt
uživatele. S parsováním se setkáváme i v neobjektových jazycích.
Přetypování funguje pouze v OOP a jde o to, že objekt, který převádíš na něco jiného ve skutečnosti je tím, na co ho chceš převést, ale kompilátor o tom neví. Použiješ to třeba tak, že si uložíš uživatele do typu object, ale chceš s ním dále pracovat. Jenže kompilátor neví, že v proměnné typu object je ve skutečnosti uživatel, proto to explicitně specifikuješ přetypováním.
object o=new User();
//nějaký kód
User b=(User)o;
Problém VB.NET neumím, ale co jsem tak pochopil z toho krátkého článku,
je to dost matoucí, pokud neumíš OOP již z dřívějška. Nicméně platí,
že to jsou 2 naprosto odlišné věci.
VB.NET jen očividně umožňuje zkrácený zápis pro parsování.
Tak teď už mi to je naprosto jasné. OOP jsem se učil v zdejším seriálu
Zobrazeno 10 zpráv z 10.