|
Wow - VB sure sucks.
http://visualbasic.about.com/od/usingvbnet/l/bldykvbnetlogop.htm[^]
Looks like the answer is that the old operators do not optimise in any way.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
This is in no way different from the way C# works with &[^] and &&[^]...
|
|
|
|
|
The way I read it, it was saying that VB6 would evaluate the whole line even when it knew it was going to fail, so you can't do if (x != null && x.y != 0 ).
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
>>The way I read it, it was saying that VB6 would evaluate the whole line even when it knew it was going to fail, so you can't do if (x != null && x.y != 0 ).
Correct! VB6 would eval both expressions before coming back with a result, even if the first failed.
AndAlso & OrElse allow "short cut" checks. Meaning after the first expression that fails/passes the check, the remaining checks are ignored and processing continues.
|
|
|
|
|
Nice explanation about AndAlso. However, proper checks for the division by zero in the example could do away with the need for AndAlso. It does make sense about short circuiting if the boolean condition can be determined with out fully evaluating the entire expression.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
The one that drives me nuts is the lack of a decent ternery operator. The rough equivalent of say:
foo == null ? "null" : foo.bar;
is Iif(foo = null, "null", foo.bar)
Which is just a regular function, all arguments get evaluated before it's called, and bang! Null ref. :/
|
|
|
|
|
Yeah, I've been bitten by that on brief visits to VB land
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
AndAlso and OrElse perform what is known as short curcuit evaluation.
What this means is that if the first argument makes it such that the result is known then the second argument is not tested.
For example if you have:
If DayIsTuesDay() And DayisSomeonesBirthday()
Both DayIsTuesday() and DayIsSomeonesBirthday() will be valuated.
However if you have:
If DayIsTuesDay() AndAlso DayisSomeonesBirthday()
and DayIsTuesday returns false then there is no point executing DayIsSomeonesBirthday
Where your second operation is doing something slow (like reading from a database) using short curcuit evaluations can significantly speed up your application.
|
|
|
|
|
You may have to be a bit careful though. In the statement
If DayIsTuesDay() And DayisSomeonesBirthday()
if "DayIsTuesday" alters data, and "DayIsSomeonesBirthday" also alters data, you might not want to short-cut... for example (and yes, its a crap example!)
if ClearUserTable() and ClearPasswordTable() then
messagebox.show("Tables Cleared")
end if
In this case, you would definitely NOT want to shortcut the second function using AndAlso
|
|
|
|
|
I think the subliminal message is: "use C# !"
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
The VB.Net keyword And
is equivalent to the C# operator &
The VB.Net keyword AndAlso is equivalent to the C# operator &&
The VB.Net keyword Or is equivalent to the C# operator |
The VB.Net keyword OrElse is equivalent to the C# operator ||
The subliminal message is RTM[^]?
|
|
|
|
|
Duncan Edwards Jones wrote: The subliminal message is RTM[^]?
Nope. IMHO default behaviour should be short-cut and the keywords AndAlso , OrElse are simply foolish, hence my subliminal still stands.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Right.
Read The Fantastic Manual.
Apparently no one does anymore, even asking Google seems too much for some.
|
|
|
|
|
Luc Pattyn wrote: Google seems too much for some
Seems like it.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
As a minor semantic difference - the & operator in C# is a bitwise and, whereas && is the logical and which also shortcircuits. (Like C++)
I'm used to using & with caution - coming from a C++ background - you could have two "true" results from a function - but 1 & 2 == false In C# this cautioning really doesnt apply though.
|
|
|
|
|
There is no semantic difference.
The following are *exactly* equivalent:
VB: C#:
And &
Or |
AndAlso &&
OrElse ||
The VB 'And' is *both* a bitwise operator and a non-short-circuiting logical operator, as is the C# '&' operator. Ditto for 'Or' and '|'.
They produce identical results when used in the same situations.
Obviously, it usually makes sense to use 'AndAlso' and 'OrElse' in most logical evaluation situations, but occasionally 'And' and 'Or' may be preferred, in exactly the same cases where '&' and '|' may be preferred in C#.
David Anton
http://www.tangiblesoftwaresolutions.com
C++ to C# Converter
C++ to VB Converter
C++ to Java Converter
VB to Java Converter
Java to VB & C# Converter
Instant C#: VB to C# converter
Instant VB: C# to VB converter
Instant C++: convert VB, C#, or Java to C++/CLI
|
|
|
|
|
Hi All!
I Am Using Visual Studio 2005 .NET Standard Edition and I have run into (Yet Another)
HUGE Problem.
My MenuStrip Isn't Working.
It's inside a tabcontrol near the bottom of my form and isn't my forms main MenuStrip, when my
app starts, as if by magic, all menustripitems on the control dissappear! Leaving an empty menustrip!
It's really been bugging me, i've tried refreshing it, toggline it's visibility and everything.
nothing Seems to work.
Any Help Would really be appreiciated!
MrWolfy
|
|
|
|
|
Hey Everybody I Solved it!
The Bug itself seems to be extremely difficult, if not impossible to fix BUT by simply docking the
toolstripcontainer and menustrip inside a panel everything works fine!
It seems that the tabcontrol and the toolstripcontainer and/or menustrip don't mix well, but hey,
the panel method works, and works well!
Thanks!
MrWolfy
|
|
|
|
|
Dang... It's Just Dissappeared Again
I thought i had it but i didn't.
And it's driving me MAD
Somebody please help me, it's been haunting me ever since i first bought VS 2005!
Thanks.
MrWolfy
|
|
|
|
|
First off, you should not have anything in a tabcontrol except for tabpages. If the menu is in a tabpage then their shouldn't be any problem.
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
how can i prevent my data not to overlap when printing it...i am using vb.net...hope you could help me...thanks
|
|
|
|
|
read the sticky at the top of the forum 'need help' is not a valid subject, everyone who posts, needs help.
If you write good print code, it won't overlap. Hard to say more without seeing code.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
hi,
i'm using VS2008 working on v.net windows application, here i dont know how to show my textbox display backward.. i mean if i enter '12345' then the textbox will display '54321'.. plz help and guide me..
thanx..
|
|
|
|
|
You could try to write a custom control to do that. Good luck, it won't be trivial.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|