Support Forums
[TUT]Improve your Coding[VB] - Printable Version

+- Support Forums (https://www.supportforums.net)
+-- Forum: Categories (https://www.supportforums.net/forumdisplay.php?fid=87)
+--- Forum: Coding Support Forums (https://www.supportforums.net/forumdisplay.php?fid=18)
+---- Forum: Visual Basic and the .NET Framework (https://www.supportforums.net/forumdisplay.php?fid=19)
+---- Thread: [TUT]Improve your Coding[VB] (/showthread.php?tid=16219)

Pages: 1 2


[TUT]Improve your Coding[VB] - ThePrinCe - 02-17-2011

Improve your Coding


This is a small 'guide' on how to improve your coding and make it more clear. You can keep the overview, following these tips.

Rename your controls


This is important to actually keep your code clean.

Do not keep the default control names like Button1/Textbox1.

Rename them.

Textbox1 = txtResult
Button1 = cmdCalculate

You can now easily recognize your events in your code, instead of having to search them.

Comment your code

This is obvious. You may forget stuff later on, therefore you can just add comments into your code.
Code:
'[color=#32CD32]comment  [/color]

Use your datatypes correctly
Code:
Dim int as integer = "5"
Dim str as string = "Sample Text"

txtResult.text = int

Integer <> String. Therefore the correct way is:
Code:
Dim int as integer = 5

Shorten your code

Instead of writing:
Code:
txtResult.text = txtResult.text + int
You better use:
Code:
txtResult.text += int

Using
Code:
Dim str as IO.Streamreader = New Streamreader("C:\test.txt")

txtResult.text = str.readtoend

str.dispose

Code:
Using str as new Io.Streamreader("C:\test.txt")

txtResult.text = str.readtoend

End Using

Case instead of If

Code:
If txtResult.text = "a" Then
Msgbox("Newb")
End if

If txtResult.Text = "b" Then
Msgbox("Newbie")
End if

If txtResult.text = "c" Then
Msgbox("Noob")
End if

Code:
Select Case txtresult.Text

Case "a"
Msgbox("Newb")

Case "b"
Msgbox("Newbie")

Case "c"
Msgbox("PM Me xD")

End Select

If-Structures

If condition Then
[statements]
ElseIf condition Then
[statements]
Else
[statements]
End If

Code:
If textbox1.text = "HakerDz"
'do something
elseif Textbox1.text = "HakerDz"
'do something else
else 'if it's neither HakerDz nor HakerDz
'something
end if

Using Case...

Code:
Select Case Textbox1.Text
Case "meh"
'do something
Case "Duh"
'do something else
Case Else
'something
end select
Code:
If Textbox1.text <> "" then 'if it's not empty
end if

If not...

Code:
If not textbox1.text = "" then
end if

Declare your own Subs/Function
You may have a lot of repetitive code. Therefore, you can shorten your code a lot by building functions or subs.

Structure

Code:
Dim firstPos as point
Dim firstDir as string
Dim firstFrame as integer

Dim secondPos as point
Dim secondDir as string
Dim secondFrame as integer

Dim thirdPos as point
Dim thirdDir as string
Dim thirdFrame as integer

Code:
Structure meh
Dim Pos As Point
Dim Dir As String
Dim Frame As Integer
end structure

dim first as meh
dim second as meh
dim third as meh

Booleans
Code:
Dim b as boolean 'by default the boolean is FALSE
Code:
If b = true then
'do something
end if

If b = false Then
'do something
end if

Code:
if b then 'true
'do something
else 'false
'do something
end if

Try-Catch
To avoid your program from closing when an error appears, you can use Try-Catch Blocks.
Code:
Try
Timer.Value = txtResult.Text 'user may enter a letter instead of a number
Catch ex as exception
Msgbox(ex.Tostring) 'optional
End try

However, do not use them if they are not necessary.
Code:
Try
Timer.Value = nudValue.Value 'NumericUpDown
Catch ex as exception
end try

Regions
You can use Regions to make your code more clear.
Code:
#Region "Settings"

  Private Sub spStartup_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles spStartup.CheckedChanged
    if spstartup then
   my.settings.spStartup = true 'run singleplayer on startup
   my.settings.save
   end if  
End sub

  Private Sub mpStartup_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mpStartup.CheckedChanged
    if spstartup then
   my.settings.mpStartup = true 'run multiplayer on startup
   my.settings.save
   end if  
End sub    

#End region

Good Luck Smile, i hope you will like IT.!
HakerDz


RE: [TUT]Improve your Coding[VB] - MoonWalker - 02-17-2011

That was helpful. I'm learning VB currently, will keep this is in mind.
Thanks for sharing btw.


RE: [TUT]Improve your Coding[VB] - Knight - 02-17-2011

While I don't understand much about code, I learned a little bit from this. Thank you.


RE: [TUT]Improve your Coding[VB] - Dïṉøṡαώṡ_ - 02-20-2011

Thanks a lot for this, I am not the best VB coder but I've totally realized how important it is to stay organised and clean whilst coding simple programs. Thanks a lot for the share, I've bookmarked this so when I am next making a application I'll revert back to this before finishing it to clean the code up a little. Big Grin


RE: [TUT]Improve your Coding[VB] - Untouch - 02-20-2011

Not bad and everything seems correct. Nice post.
I like to use if's rather than case. Big Grin


RE: [TUT]Improve your Coding[VB] - Fragma - 02-20-2011

Yeh I tend to use If more than Case aswell.

Other than that I do everything you mentioned here. Good post.
It can make so much difference cleaning up your code, not only performance wise, but also just so that you know where things are, and what they do. You can end up confusing yourself if you have lots of code.

What I tend to do is work step by step, and then I'll group various parts together using Regions.
For example if I had a few functions, I'd group them all together into a Region named "Functions", same for Timers, Declarations etc..



RE: [TUT]Improve your Coding[VB] - Emily - 04-14-2011

I didn't really get the code. This helped me a bit but I do not understand the code.


RE: [TUT]Improve your Coding[VB] - HerpinDerp - 04-15-2011

Thank you, very useful!


RE: [TUT]Improve your Coding[VB] - panDa. - 04-16-2011

Some of the basic codes, but helpful. Thanks for sharing. ^_^


RE: [TUT]Improve your Coding[VB] - ThePrinCe - 05-07-2011

welcom Guys Smile, Thank's for The Feedbacks.