Nullable type in vb.net

Since relational database support null values for every types, it makes sense that your application should also support null values. Reference types can directly take null values but value types are always initialized with their default values that makes it difficult to figure out whether they contain some actual value or not.
One way developers used to achieve this by assigning some hypothetical value to a value type so that at any point of time looking at the value they would come to know whether that value type variable actually has been assigned or not.
With .Net 2.0 it has been possible to create nullable value types that means you can assign a null value to a value type with keeping all other value type advantages intact. Nullable types can be declared in following manner

 Dim myNullable As Nullable(Of Integer)
 myNullable = 4
Dim mynull As Integer? = 4

if you are interested to know what type it returns for myNullable and myNull so it is "Integer?" in both of the cases. Interestingly Integer? is nothing but a wrapper over Integer class which provides an additional functionality.

Nullable types contain a property called HasValue which provides you a better way to find out whether any value has been assigned by any time to your variable or not

Dim hasSomeValue As Boolean = myNullable.HasValue

will return me true or false based on myNullable has a null value or a valid integer.

nullable types are initialized with 'NULL' in C# and with 'NOTHING' in vb.net
Next Recommended Reading Nullable Type in c#