Whenever a Code SOD featuring Visual Basic is published here, a flood of The Real WTF is VB comments ensues. As mindless and unoriginal of a comment as it is, there's a good reason for the sentiment: Visual Basic is designed for beginners, is often used by beginners, and beginners write an awful amount of awful code.
While it's easy to blame the language for bad code — *cough*PHP*cough*variableVariables*cough* — beginner-targeted languages can offer some benefits. Like, for example, the awesome fun and ease of using a single line of code like this: My.Computer.Audio.Play("cha-ching.wav")
Of course, given this snippet sent in by Albert H, there's far too much WTF to blame just the programmer.
Public Property IsDemo(Optional ByVal RuntimeInMiliSeconds As Integer = 0) As Boolean Get Return _IsDemo End Get Set(ByVal value As Boolean) _IsDemo = value If value Then DemoTimer.Interval = RuntimeInMiliSeconds DemoTimer.Start() End If End Set End Property
For those unacquainted with the language, VisualBasic.NET has "properties" which are used as getters and setters, much like many other modern languages. But unlike other languages, VB uses regular "()" brackets for both indexing and method parameters, leading towards code like above... and code for how such properties are used:
IsDemo(600000) = True
Naturally, a method would be just as easy (if not easier) to implement: SetDemoMode(isDemo as boolean, TimeOut as integer)
.