Hromadné přiřazení hodnoty   zodpovězená otázka

VB.NET

Dnes jsem narazil na zajímavou věc. Máme-li dvě proměnné, do kterých chceme naráz přiřadit stejnou hodnotu, máme dvě možnosti:

Dim x = 1
Dim y = 2

'1.
x = 3
y = 3

'2.
x = y = 3

Druhá možnost však ve Visual Basicu nefunguje tak, jak by se dalo očekávat, tedy že obě proměnné budou mít hodnotu 3. x bude mít hodnotu 0 a y 2, protože VB to vyhodnotí jako x = (y = 3) a do x přiřadí číselnou reprezentaci hodnoty False, tedy 0. Dá se to zjistit pokud je zapnutá možnost Option Strict, která zakazuje implicitní konverze (většinou mám tuto masochistickou možnost vypnutou).

V C# toto funguje tak jak by se dalo očekávat, tedy x i y budou mít hodnotu 3. C# totiž používá operátor = pro přiřazení hodnoty, == pro porovnání hodnot.

Můj dotaz tedy zní, jestli někdo neznáte něco podobného ve VB.NET.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ne, to je jedna z věcí, kterou VB.NET neumí a asi ani nikdy umět nebude.

Obzvláště otravné je to u while cyklů, například na tohle se ve VB.NET musí řešit trochu oklikou:

while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
    // zpracovat data
}

Na druhou stranu tohle je potřeba jednou za měsíc, takže to takový problém není.

Podle mě to ani není zrovna extra přehledné, ale to je asi o zvyku - céčkaři to používají furt.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Škoda. No já zase v C# nemůžu ustát absenci Application Frameworku, implicitní konverze a velmi návykového My.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jojo, My je návykové hodně. Ale jinak implicitní konverze mě moc neštvou, to jsou jednotky případů denně (štvaly mě, když jsem dělal v XNA nebo v DirectX, kde byl smaý float). Navíc dneska ani ty typy pořádně nepíšu, protože máme var.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback