Monthly Archives: May 2006

“Tak tohle uzamčení je mrtvé.”

Už jednou jsem zmínil o knize, za kterou jsem de facto vyhodil peníze a o jejím “skvělém” překladu, několik týdnů jsem na ni však nesáhl – neměl jsem chuť ani čas. Dneska mě to ale popadlo a říkal jsem si, že když už jsem ji koupil, tak ji i dočtu. Během čtení jsem již otupěl na běžné “velmi vyladěné” české překlady, ale narazil jsem opět na jedno velmi pěkné – mrtvé uzamčení – v první chvíli mi samozřejmě nedošlo o co jde, ale pak mi cvaklo. To je přece velmi brilantně přeloženo slovo deadlock.

No myslím, že kařdý by mohl přihodit svou vlastní zkušenost, ja však doufám, že od této knihy nic sem nepřidám (a že ji konečně dočtu, abych neměl tak velký pocit vyhozených peněz).

Operátor ??

V C# je zajímavý operátor. Jedná se o ‘??’. Každý asi zná (nebo aspoň slyšel o) ‘?:’, ale co ‘??’.

Operátor ?? může pomoci při používání nullable typů. Často totiž potřebujete do jiné proměnné přiřadit buď hodnotu nebo vlastní “chybovou”. Samozřejmě vše lze ošetřit pomocí ifu (jako vždy), ale proč si věc neusnadnit.

int? x = null;
int y = x ?? -1;

Tato kontrukce nám zajistí, že pokud je x nenullové, bude do y přiřazena jeho hodnota. Jinak bude přiřazeno ‘-1′. Dobré, že? ;-)

Pozn.: ‘??’ funguje samozřejmě i s referenčními typy.

Čtete streamy?

A čtete je od začátku? Pravděpodobně ano.

To jsem si zase jednou naběhl. Vydloubal jsem ze sítě data, která mi jiná moje aplikace poslala a chtěl jsem je deserializovat a pracovat s nimi dál. Neustále jsem ale dostával výjimku s tím, že byl dosažen konec streamu před koncem parsování. A jak mi to teď k večeru nemyslí, začal jsem prapodivně hledat chybu. Nejprve jsem oveřil, že data jsou všechna – byla. Pak jsem začal laborovat s nějakými identifikátory na konci, abych si byl opravdu jistý (samozřejmě jsem na nic nepřisel). No a nakonec mě musel nakopnout google (viva google).

Jak jsem totiž zapsal data do streamu pro deserializaci, zapomněl jsem přesunout pozici na začátek. :) Ach jo. Deset minut jsem se hrabal v kódu (a samozřejmě jsem ho trochu rozvrtal, takže jsem to musel dávat zpět) a ona to byla takováhle prkotina. :)



>End of Stream encountered before parsing was completed.<

Přednáška/Workshop ADO.NET (a WinForms)

Zítra (4.5.) se na Fakultě Informatiky, MU Brno uskuteční přednáška či spíše workshop na téma ADO.NET a použití ve WinForms. Každý kdo má zájem se přijít podívat, nechť mi napíše, kapacita zatím je.
Místo a čas: učebna B117, 18:00

Pozn.: Jedná se o cyklus více přednášek, takže pokud bude zájem, uskuteční se i další.