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.
|