Wednesday, July 13, 2011

[VB.net] Structure, Arraylist and Combination {Detailed Tutorial}. Part -1/2

Hi all,

In this tutorial, you will learn almost everything about Structures, Arraylist and how to use the combination of both to get the best results. I am also gonna be teaching how to save and reload an arraylist.

Structures

Structures is basically a tool for handling a group of logically related data items or field. Structures are very similar to classes. The main difference between classes and structures is that structures are value type and classes are reference type.

Difference between Value and Reference Type:-

I can't explain better than this website.

"Reference types are stored on the run-time heap; they may only be accessed through a reference to that storage. This allows the garbage collector to track outstanding references to a particular instance and free the instance when no references remain. A variable of reference type always contains a reference to a value of that type or a null reference. A null reference refers to nothing; it is invalid to do anything with a null reference except assign it. Assignment to a variable of a reference type creates a copy of the reference, not a copy of the value being referenced.

Value types are stored directly on the stack, either within an array or within another type. When the location containing a value type instance is destroyed, the value type instance is also destroyed. Value types are always accessed directly; it is not possible to create a reference to a value type. Prohibiting such a reference makes it impossible to refer to a value class instance that has been destroyed. A variable of a value type always contains a value of that type. Unlike reference types, the value of a value type cannot be a null reference, nor can it reference an object of a more derived type. Assignment to a variable of a value type creates a copy of the value being assigned."

Source: http://www.dotnetspider.com/resources/1479-Difference-between-reference-Linktype-value-type.aspx

Codes:

Public Class Form1
Dim inc As Integer = 0
Dim emp(inc) As employee

Structure employee
Dim EmpName As String
Dim EmpId As Integer
Dim EmpDesignation As String
Dim EmpSal As Double
End Structure

Private Sub btn_Structures_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Structures.Click

emp(inc).EmpName = "Udit Dua"
emp(inc).EmpDesignation = "Software Developer"

MsgBox(emp(inc).EmpName)
MsgBox(emp(inc).EmpDesignation)

ReDim Preserve emp(inc + 1)

emp(inc).EmpName = "John Smith"
emp(inc).EmpDesignation = "School Teacher"

MsgBox(emp(inc).EmpName)
MsgBox(emp(inc).EmpDesignation)

ReDim Preserve emp(inc + 1)

End Sub
End Class


Here is the video tutorial: