Tuesday, 24 September 2013

ASPDOTNET WITH VBDOTNET - VBDOTNET BASICS MANOHAR GOUD



VB.Net is a simple, modern, object-oriented computer programming language developed by Microsoft to combine the power of the .NET Framework and the common language runtime with the productivity benefits that are the hallmark of Visual Basic.

Visual Basic .NET (VB.NET) is an object-oriented computer programming language implemented on the .NET Framework. Although it is an evolution of classic Visual Basic language, it is not backwards-compatible with VB6, and any code written in the old version does not compile under VB.NET.
Like all other .NET languages, VB.NET has complete support for object-oriented concepts. Everything in VB.NET is an object, including all of the primitive types (Short, Integer, Long, String, Boolean, etc.) and user defined types, events, and even assemblies. All objects inherits from the base class Object.
VB.NET is implemented of Microsoft's .NET framework. Therefore it has full access all the libraries in the .Net Framework. It's also possible to run VB.NET programs on Mono, the open-source alternative to .NET, not only under Windows, but even Linux or Mac OSX.
The following reasons make VB.Net a widely used professional language:
  • Modern, general purpose.
  • Object oriented.
  • Component oriented.
  • Easy to learn.
  • Structured language.
  • It produces efficient programs.
  • It can be compiled on a variety of computer platforms.
  • Part of .Net Framework.

Strong Programming Features VB.Net

VB.Net has numerous strong programming features that make it endearing to multitude of programmers worldwide. Let us mention some of these features:
  • Boolean Conditions
  • Automatic Garbage Collection
  • Standard Library
  • Assembly Versioning
  • Properties and Events
  • Delegates and Events Management
  • Easy to use Generics
  • Indexers
  • Conditional Compilation
  • Simple Multithreading

The .Net Framework

The .Net framework is a revolutionary platform that helps you to write the following types of applications:
  • Windows applications
  • Web applications
  • Web services
The .Net framework applications are multi-platform applications. The framework has been designed in such a way that it can be used from any of the following languages: Visual Basic, C#, C++, Jscript, and COBOL etc.
All these languages can access the framework as well as communicate with each other.
The .Net framework consists of an enormous library of codes used by the client languages like VB.Net. These languages use object oriented methodology.
Following are some of the components of the .Net framework:
  • Common Language Runtime (CLR)
  • The .Net Framework Class Library
  • Common Language Specification
  • Common Type System
  • Metadata and Assemblies
  • Windows Forms
  • ASP.Net and ASP.Net AJAX
  • ADO.Net
  • Windows Workflow Foundation (WF)
  • Windows Presentation Foundation
  • Windows Communication Foundation (WCF)
  • LINQ
For the jobs each of these components perform, please see ASP.Net - Introduction and for details of each component, please consult Microsoft's documentation.

Integrated Development Environment (IDE) For VB.Net

Microsoft provides the following development tools for VB.Net programming:
  • Visual Studio 2010 (VS)
  • Visual Basic 2010 Express (VBE)
  • Visual Web Developer

VB.Net program structure so that we can take it as a reference in upcoming chapters.

VB.Net Hello World Example

A VB.Net program basically consists of the following parts:
  • Namespace declaration
  • A class or module
  • One or more procedures
  • Variables
  • The Main procedure
  • Statements & Expressions
  • Comments
Let us look at a simple code that would print the words "Hello World":
Imports System
Module Module1
   'This program will display Hello World 
   Sub Main()
      Console.WriteLine("Hello World")
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Hello, World!
Let us look various parts of the above program:
  • The first line of the program Imports System is used to include the System namespace in the program.
  • The next line has a Module declaration, the module Module1. VB.Net is completely object oriented, so every program must contain a module of a class that contains the data and procedures that your program uses.
  • Classes or Modules generally would contain more than one procedure. Procedures contain the executable code, or in other words, they define the behavior of the class. A procedure could be any of the following:
    • Function
    • Sub
    • Operator
    • Get
    • Set
    • AddHandler
    • RemoveHandler
    • RaiseEvent
  • The next line( 'This program) will be ignored by the compiler and it has been put to add additional comments in the program.
  • The next line defines the Main procedure, which is the entry point for all VB.Net programs. The Main procedure states what the module or class will do when executed.
  • The Main procedure specifies its behavior with the statement
    Console.WriteLine("Hello World")
    WriteLine is a method of the Console class defined in the System namespace. This statement causes the message "Hello, World!" to be displayed on the screen.
  • The last line Console.ReadKey() is for the VS.NET Users. This will prevent the screen from running and closing quickly when the program is launched from Visual Studio .NET.

Compile & Execute VB.Net Program:

If you are using Visual Studio.Net IDE, take the following steps:
  • Start Visual Studio.
  • On the menu bar, choose File, New, Project.
  • Choose Visual Basic from templates
  • Choose Console Application.
  • Specify a name and location for your project using the Browse button, and then choose the OK button.
  • The new project appears in Solution Explorer.
  • Write code in the Code Editor.
  • Click the Run button or the F5 key to run the project. A Command Prompt window appears that contains the line Hello World.
You can compile a VB.Net program by using the command line instead of the Visual Studio IDE:
  • Open a text editor and add the above mentioned code.
  • Save the file as helloworld.vb
  • Open the command prompt tool and go to the directory where you saved the file.
  • Type vbc helloworld.vb and press enter to compile your code.
  • If there are no errors in your code the command prompt will take you to the next line and would generatehelloworld.exe executable file.
  • Next, type helloworld to execute your program.
  • You will be able to see "Hello World" printed on the screen.

VB.Net is an object oriented programming language. In Object Oriented Programming methodology a program consists of various objects that interact with each other by means of actions. The actions that an object may take are called methods. Objects of the same kind are said to have the same type or, more often, are said to be in the same class.
When we consider a VB.Net program it can be defined as a collection of objects that communicate via invoking each other's methods. Let us now briefly look into what do class, object, methods and instant variables mean.
  • Object - Objects have states and behaviors. Example: A dog has states-color, name, breed as well as behaviors -wagging, barking, eating etc. An object is an instance of a class.
  • Class - A class can be defined as a template/ blue print that describe the behaviors/states that object of its type support.
  • Methods - A method is basically a behavior. A class can contain many methods. It is in methods where the logics are written, data is manipulated and all the actions are executed.
  • Instant Variables - Each object has its unique set of instant variables. An object's state is created by the values assigned to these instant variables.

A Rectangle Class in VB.Net

For example, let us consider a Rectangle object. It has attributes like length and width. Depending upon the design, it may need ways for accepting the values of these attributes, calculating area and display details.
Let us look at an implementation of a Rectangle class and discuss VB.Net basic syntax, on the basis of our observations in it:
Imports System
Public Class Rectangle
    Private length As Double
    Private width As Double

    'Public methods
    Public Sub AcceptDetails()
        length = 4.5
        width = 3.5
    End Sub

    Public Function GetArea() As Double
        GetArea = length * width
    End Function
    Public Sub Display()
        Console.WriteLine("Length: {0}", length)
        Console.WriteLine("Width: {0}", width)
        Console.WriteLine("Area: {0}", GetArea())

    End Sub

    Shared Sub Main()
        Dim r As New Rectangle()
        r.Acceptdetails()
        r.Display()
        Console.ReadLine()
    End Sub
End Class
When the above code is compiled and executed, it produces following result:
Length: 4.5
Width: 3.5
Area: 15.75
In previous chapter, we created a Visual Basic module that held the code. Sub Main indicates the entry point of VB.Net program. Here, we are using Class that contains both code and data. You use classes to create objects. For example, in the code, r is a Rectangle object.
An object is an instance of a class:
Dim r As New Rectangle()
A class may have members that can be accessible from outside class, if so specified. Data members are called fields and procedure members are called methods.
Shared methods or static methods can be invoked without creating an object of the class. Instance methods are invoked through an object of the class:
Shared Sub Main()
   Dim r As New Rectangle()
   r.Acceptdetails()
   r.Display()
   Console.ReadLine()
End Sub

Identifiers

An identifier is a name used to identify a class, variable, function, or any other user-defined item. The basic rules for naming classes in VB.Net are as follows:
  • A name must begin with a letter that could be followed by a sequence of letters, digits (0 - 9) or underscore. The first character in an identifier cannot be a digit.
  • It must not contain any embedded space or symbol like ? - +! @ # % ^ & * ( ) [ ] { } . ; : " ' / and \. However an underscore ( _ ) can be used.
  • It should not be a reserved keyword.

VB.Net Keywords

The following table lists the VB.Net reserved keywords:

AddHandlerAddressOfAliasAndAndAlsoAsBoolean
ByRefByteByValCallCaseCatchCBool
CByteCCharCDateCDecCDblCharCInt
ClassCLngCObjConstContinueCSByteCShort
CSngCStrCTypeCUIntCULngCUShortDate
DecimalDeclareDefaultDelegateDimDirectCastDo
DoubleEachElseElseIfEndEnd IfEnum
EraseErrorEventExitFalseFinallyFor
FriendFunctionGetGetTypeGetXML
Namespace
GlobalGoTo
HandlesIfImplementsImportsInInheritsInteger
InterfaceIsIsNotLetLibLikeLong
LoopMeModModuleMustInheritMustOverrideMyBase
MyClassNamespaceNarrowingNewNextNotNothing
Not
Inheritable
Not
Overridable
ObjectOfOnOperatorOption
OptionalOrOrElseOverloadsOverridableOverridesParamArray
PartialPrivatePropertyProtectedPublicRaiseEventReadOnly
ReDimREMRemove
Handler
ResumeReturnSByteSelect
SetShadowsSharedShortSingleStaticStep
StopStringStructureSubSyncLockThenThrow
ToTrueTryTryCastTypeOfUIntegerWhile
WideningWithWithEventsWriteOnlyXor

Data types refer to an extensive system used for declaring variables or functions of different types. The type of a variable determines how much space it occupies in storage and how the bit pattern stored is interpreted.

Data Types Available in VB.Net

VB.Net provides a wide range of data types. The following table shows all the data types available:
Data TypeStorage AllocationValue Range
BooleanDepends on implementing platformTrue or False
Byte1 byte0 through 255 (unsigned)
Char2 bytes0 through 65535 (unsigned)
Date8 bytes0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999
Decimal16 bytes0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28)with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal
Double8 bytes-1.79769313486231570E+308 through -4.94065645841246544E-324, for negative values
4.94065645841246544E-324 through 1.79769313486231570E+308, for positive values
Integer4 bytes-2,147,483,648 through 2,147,483,647 (signed)
Long8 bytes-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807(signed)
Object4 bytes on 32-bit platform
8 bytes on 64-bit platform
Any type can be stored in a variable of type Object
SByte1 byte-128 through 127 (signed)
Short2 bytes-32,768 through 32,767 (signed)
Single4 bytes-3.4028235E+38 through -1.401298E-45 for negative values;
1.401298E-45 through 3.4028235E+38 for positive values
StringDepends on implementing platform0 to approximately 2 billion Unicode characters
UInteger4 bytes0 through 4,294,967,295 (unsigned)
ULong8 bytes0 through 18,446,744,073,709,551,615 (unsigned)
User-DefinedDepends on implementing platformEach member of the structure has a range determined by its data type and independent of the ranges of the other members
UShort2 bytes0 through 65,535 (unsigned)

Example

The following example demonstrates use of some of the types:
Module DataTypes
   Sub Main()
      Dim b As Byte
      Dim n As Integer
      Dim si As Single
      Dim d As Double
      Dim da As Date
      Dim c As Char
      Dim s As String
      Dim bl As Boolean
      b = 1
      n = 1234567
      si = 0.12345678901234566
      d = 0.12345678901234566
      da = Today
      c = "U"c
      s = "Me"
      If ScriptEngine = "VB" Then
         bl = True
      Else
         bl = False
      End If
      If bl Then
         'the oath taking
          Console.Write(c & " and," & s & vbCrLf)
          Console.WriteLine("declaring on the day of: {0}", da)
          Console.WriteLine("We will learn VB.Net seriously")
          Console.WriteLine("Lets see what happens to the floating point variables:")
          Console.WriteLine("The Single: {0}, The Double: {1}", si, d)
      End If
      Console.ReadKey()
   End Sub

End Module
When the above code is compiled and executed, it produces following result:
U and, Me
declaring on the day of: 12/4/2012 12:00:00 PM
We will learn VB.Net seriously
Lets see what happens to the floating point variables:
The Single:0.1234568, The Double: 0.123456789012346

The Type Conversion Functions in VB.Net

VB.Net provides the following inline type conversion functions:
S.NFunctionss & Description
1CBool(expression)
Converts the expression to Boolean data type.
2CByte(expression)
Converts the expression to Byte data type.
3CChar(expression)
Converts the expression to Char data type.
4CDate(expression)
Converts the expression to Date data type
5CDbl(expression)
Converts the expression to Double data type.
6CDec(expression)
Converts the expression to Decimal data type.
7CInt(expression)
Converts the expression to Integer data type.
8CLng(expression)
Converts the expression to Long data type.
9CObj(expression)
Converts the expression to Object type.
10CSByte(expression)
Converts the expression to SByte data type.
11CShort(expression)
Converts the expression to Short data type.
12CSng(expression)
Converts the expression to Single data type.
13CStr(expression)
Converts the expression to String data type.
14CUInt(expression)
Converts the expression to UInt data type.
15CULng(expression)
Converts the expression to ULng data type.
16CUShort(expression)
Converts the expression to UShort data type.

Example:

The following example demonstrates some of these functions:
Module DataTypes
   Sub Main()
      Dim n As Integer
      Dim da As Date
      Dim bl As Boolean = True
      n = 1234567
      da = Today
      Console.WriteLine(bl)
      Console.WriteLine(CSByte(bl))
      Console.WriteLine(CStr(bl))
      Console.WriteLine(CStr(da))
      Console.WriteLine(CChar(CChar(CStr(n))))
      Console.WriteLine(CChar(CStr(da)))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
True
-1
True
12/4/2012
1
1

A variable is nothing but a name given to a storage area that our programs can manipulate. Each variable in VB.Net has a specific type, which determines the size and layout of the variable's memory; the range of values that can be stored within that memory; and the set of operations that can be applied to the variable.
We have already discussed various data types. The basic value types provided in VB.Net can be categorized as:
TypeExample
Integral typesSByte, Byte, Short, UShort, Integer, UInteger, Long, ULong and Char
Floating point typesSingle and Double
Decimal typesDecimal
Boolean typesTrue or False values, as assigned
Date typesDate
VB.Net also allows defining other value types of variable like Enum and reference types of variables like Class. We will discuss date types and Classes, in subsequent chapters.

Variable Declaration in VB.Net

The Dim statement is used for variable declaration and storage allocation for one or more variables. The Dim statement is used at module, class, structure, procedure or block level.
Syntax for variable declaration in VB.Net is:
[ < attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]]
[ ReadOnly ] Dim [ WithEvents ] variablelist
Where,
  • attributelist is a list of attributes that apply to the variable. Optional.
  • accessmodifier defines the access levels of the variables, it has values as - Public, Protected, Friend, Protected Friend and Private. Optional.
  • Shared declares a shared variable, which is not associated with any specific instance of a class or structure, rather available to all the instances of the class or structure. Optional.
  • Shadows indicate that the variable re-declares and hides an identically named element, or set of overloaded elements, in a base class. Optional.
  • Static indicates that the variable will retain its value, even when the after termination of the procedure in which it is declared. Optional.
  • ReadOnly means the variable can be read, but not written. Optional.
  • WithEvents specifies that the variable is used to respond to events raised by the instance assigned to the variable. Optional.
  • Variablelist provides the list of variables declared.
Each variable in the variable list has the following syntax and parts:
variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ] [ = initializer ]
Where,
  • variablename: is the name of the variable
  • boundslist: optional. It provides list of bounds of each dimension of an array variable.
  • New: optional. It creates a new instance of the class when the Dim statement runs.
  • datatype: Required if Option Strict is On. It specifies the data type of the variable.
  • initializer: Optional if New is not specified. Expression that is evaluated and assigned to the variable when it is created.
Some valid variable declarations along with their definition are shown here:
Dim StudentID As Integer
Dim StudentName As String
Dim Salary As Double
Dim count1, count2 As Integer
Dim status As Boolean
Dim exitButton As New System.Windows.Forms.Button
Dim lastTime, nextTime As Date

Variable Initialization in VB.Net

Variables are initialized (assigned a value) with an equal sign followed by a constant expression. The general form of initialization is:
variable_name = value;
for example,
Dim pi As Double
pi = 3.14159
You can initialize a variable at the time of declaration as follows:
Dim StudentID As Integer = 100
Dim StudentName As String = "Bill Smith"

Example

Try following example which makes use of various types of variables:
Module variablesNdataypes
   Sub Main()
      Dim a As Short
      Dim b As Integer
      Dim c As Double
      a = 10
      b = 20
      c = a + b
      Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
a = 10, b = 20, c = 30

Accepting Values from User

The Console class in the System namespace provides a function ReadLine for accepting input from the user and store it into a variable. For example,
Dim message As String
message = Console.ReadLine
The following example demonstrates it:
Module variablesNdataypes
   Sub Main()
      Dim message As String
      Console.Write("Enter message: ")
      message = Console.ReadLine
      Console.WriteLine()
      Console.WriteLine("Your Message: {0}", message)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result(Assume the user inputs Hello World):
Enter message: Hello World   
Your Message: Hello World

Lvalues and Rvalues

There are two kinds of expressions:
  1. lvalue : An expression that is an lvalue may appear as either the left-hand or right-hand side of an assignment.
  2. rvalue : An expression that is an rvalue may appear on the right- but not left-hand side of an assignment.
Variables are lvalues and so may appear on the left-hand side of an assignment. Numeric literals are rvalues and so may not be assigned and can not appear on the left-hand side. Following is a valid statement:
Dim g As Integer = 20
But following is not a valid statement and would generate compile-time error:
20 = g


The constants refer to fixed values that the program may not alter during its execution. These fixed values are also called literals.
Constants can be of any of the basic data types like an integer constant, a floating constant, a character constant, or a string literal. There are also enumeration constants as well.
The constants are treated just like regular variables except that their values cannot be modified after their definition.
An enumeration is a set of named integer constants.

Declaring Constants

In VB.Net, constants are declared using the Const statement. The Const statement is used at module, class, structure, procedure, or block level for use in place of literal values.
The syntax for the Const statement is:
[ < attributelist> ] [ accessmodifier ] [ Shadows ] 
Const constantlist
Where,
  • attributelist: specifies the list of attributes applied to the constants; you can provide multiple attributes, separated by commas. Optional.
  • accessmodifier: specifies which code can access these constants. Optional. Values can be either of the: Public, Protected, Friend, Protected Friend, or Private.
  • Shadows: this makes the constant hide a programming element of identical name, in a base class. Optional.
  • Constantlist: gives the list of names of constants declared. Required.
Where, each constant name has the following syntax and parts:
constantname [ As datatype ] = initializer
  • constantname: specifies the name of the constant
  • datatype: specifies the data type of the constant
  • initializer: specifies the value assigned to the constant
For example,
' The following statements declare constants.  
Const maxval As Long = 4999
Public Const message As String = "HELLO" 
Private Const piValue As Double = 3.1415

Example

The following example demonstrates declaration and use of a constant value:
Module constantsNenum
   Sub Main()
      Const PI = 3.14149
      Dim radius, area As Single
      radius = 7
      area = PI * radius * radius
      Console.WriteLine("Area = " & Str(area))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Area = 153.933

Print and Display Constants in VB.Net

VB.Net provides the following print and display constants:
ConstantDescription
vbCrLfCarriage return/linefeed character combination.
vbCrCarriage return character.
vbLfLinefeed character.
vbNewLineNewline character.
vbNullCharNull character.
vbNullStringNot the same as a zero-length string (""); used for calling external procedures.
vbObjectErrorError number. User-defined error numbers should be greater than this value. For example: 
Err.Raise(Number) = vbObjectError + 1000
vbTabTab character.
vbBackBackspace character.

Declaring Enumerations

An enumerated type is declared using the Enum statement. The Enum statement declares an enumeration and defines the values of its members. The Enum statement can be used at the module, class, structure, procedure, or block level.
The syntax for the Enum statement is as follows:
[ < attributelist> ] [ accessmodifier ]  [ Shadows ] 
Enum enumerationname [ As datatype ] 
   memberlist
End Enum
Where,
  • attributelist: refers to the list of attributes applied to the variable. Optional.
  • asscessmodifier: specifies which code can access these enumerations. Optional. Values can be either of the: Public, Protected, Friend or Private.
  • Shadows: this makes the enumeration hide a programming element of identical name, in a base class. Optional.
  • enumerationname: name of the enumeration. Required
  • datatype: specifies the data type of the enumeration and all its members.
  • memberlist: specifies the list of member constants being declared in this statement. Required.
Each member in the memberlist has the following syntax and parts:
[< attribute list>] member name [ = initializer ]
Where,
  • name: specifies the name of the member. Required.
  • initializer: value assigned to the enumeration member. Optional.
For example,
Enum Colors
   red = 1
   orange = 2
   yellow = 3
   green = 4
   azure = 5
   blue = 6
   violet = 7
End Enum

Example

The following example demonstrates declaration and use of the Enum variable Colors:
Module constantsNenum
   Enum Colors
      red = 1
      orange = 2
      yellow = 3
      green = 4
      azure = 5
      blue = 6
      violet = 7
   End Enum
   Sub Main()
      Console.WriteLine("The Color Red is : " & Colors.red)
      Console.WriteLine("The Color Yellow is : " & Colors.yellow)
      Console.WriteLine("The Color Blue is : " & Colors.blue)
      Console.WriteLine("The Color Green is : " & Colors.green)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
The Color Red is: 1
The Color Yellow is: 3
The Color Blue is: 6
The Color Green is: 4

The modifiers are keywords added with any programming element, to give some especial emphasis on how the programming element will behave, or will be accessed in the program
For example, the access modifiers: Public, Private, Protected, Friend, Protected Friend etc., indicates the access level of a programming element like a variable, constant, enumeration or a class.

List of Available Modifiers in VB.Net

The following table provides the complete list of VB.Net modifiers:
S.NModifierDescription
1AnsiSpecifies that Visual Basic should marshal all strings to American National Standards Institute (ANSI) values regardless of the name of the external procedure being declared.
2AssemblySpecifies that an attribute at the beginning of a source file applies to the entire assembly.
3AsyncIndicates that the method or lambda expression that it modifies is asynchronous. Such methods are referred to as async methods. The caller of an async method can resume its work without waiting for the async method to finish..
4AutoThe charsetmodifier part in the Declare statement supplies the character set information for marshaling strings during a call to the external procedure. It also affects how Visual Basic searches the external file for the external procedure name. The Auto modifier specifies that Visual Basic should marshal strings according to .NET Framework rules.
5ByRefSpecifies that an argument is passed by reference, i.e., the called procedure can change the value of a variable underlying the argument in the calling code. It is used under the contexts of:
  • Declare Statement
  • Function Statement
  • Sub Statement
6ByValSpecifies that an argument is passed in such a way that the called procedure or property cannot change the value of a variable underlying the argument in the calling code. It is used under the contexts of:
  • Declare Statement
  • unction Statement
  • Operator Statement
  • Property Statement
  • Sub Statement
7DefaultIdentifies a property as the default property of its class, structure, or interface.
8FriendSpecifies that one or more declared programming elements are accessible from within the assembly that contains their declaration, not only by the component that declares them. Friend access is often the preferred level for an application's programming elements, and Friend is the default access level of an interface, a module, a class, or a structure.
9InIt is used in generic interfaces and delegates.
10IteratorSpecifies that a function or Get accessor is an iterator. An iterator performs a custom iteration over a collection.
11KeyThe Key keyword enables you to specify behavior for properties of anonymous types.
12ModuleSpecifies that an attribute at the beginning of a source file applies to the current assembly module. It is not same as the Module statement.
13MustInheritSpecifies that a class can be used only as a base class and that you cannot create an object directly from it.
14MustOverrideSpecifies that a property or procedure is not implemented in this class and must be overridden in a derived class before it can be used.
15NarrowingIndicates that a conversion operator (CType) converts a class or structure to a type that might not be able to hold some of the possible values of the original class or structure.
16NotInheritableSpecifies that a class cannot be used as a base class.
17NotOverridableSpecifies that a property or procedure cannot be overridden in a derived class.
18OptionalSpecifies that a procedure argument can be omitted when the procedure is called.
19OutFor generic type parameters, the Out keyword specifies that the type is covariant.
20OverloadsSpecifies that a property or procedure redeclares one or more existing properties or procedures with the same name.
21OverridableSpecifies that a property or procedure can be overridden by an identically named property or procedure in a derived class.
22OverridesSpecifies that a property or procedure overrides an identically named property or procedure inherited from a base class.
23ParamArrayParamArray allows you to pass an arbitrary number of arguments to the procedure. A ParamArray parameter is always declared using ByVal.
24PartialIndicates that a class or structure declaration is a partial definition of the class or structure.
25PrivateSpecifies that one or more declared programming elements are accessible only from within their declaration context, including from within any contained types.
26ProtectedSpecifies that one or more declared programming elements are accessible only from within their own class or from a derived class.
27PublicSpecifies that one or more declared programming elements have no access restrictions.
28ReadOnlySpecifies that a variable or property can be read but not written.
29ShadowsSpecifies that a declared programming element redeclares and hides an identically named element, or set of overloaded elements, in a base class.
30SharedSpecifies that one or more declared programming elements are associated with a class or structure at large, and not with a specific instance of the class or structure.
31StaticSpecifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.
32UnicodeSpecifies that Visual Basic should marshal all strings to Unicode values regardless of the name of the external procedure being declared.
33WideningIndicates that a conversion operator (CType) converts a class or structure to a type that can hold all possible values of the original class or structure.
34WithEventsSpecifies that one or more declared member variables refer to an instance of a class that can raise events.
35WriteOnlySpecifies that a property can be written but not read.

A statement is a complete instruction in Visual Basic programs. It may contain keywords, operators, variables, literal values, constants and expressions.
Statements could be categorized as:
  • Declaration statements - these are the statements where you name a variable, constant, or procedure, and can also specify a data type.
  • Executable statements - these are the statements, which initiate actions. These statements can call a method or function, loop or branch through blocks of code or assign values or expression to a variable or constant. In the last case, it is called an Assignment statement.

Declaration Statements

The declaration statements are used to name and define procedures, variables, properties, arrays, and constants. When you declare a programming element, you can also define its data type, access level, and scope.
The programming elements you may declare include variables, constants, enumerations, classes, structures, modules, interfaces, procedures, procedure parameters, function returns, external procedure references, operators, properties, events, and delegates.
Following are the declaration statements in VB.Net:
S.NStatements and DescriptionExample
1Dim Statement  Declares and allocates storage space for one or more variables.
Dim number As Integer
Dim quantity As Integer = 100
Dim message As String = "Hello!"
2Const Statement  Declares and defines one or more constants.
Const maximum As Long = 1000
Const naturalLogBase As Object 
= CDec(2.7182818284)
3Enum Statement  Declares an enumeration and defines the values of its members.
Enum CoffeeMugSize
    Jumbo
    ExtraLarge
    Large
    Medium
    Small
End Enum 
4Class Statement  Declares the name of a class and introduces the definition of the variables, properties, events, and procedures that the class comprises.
Class Box
Public length As Double
Public breadth As Double   
Public height As Double
End Class
5Structure Statement Declares the name of a structure and introduces the definition of the variables, properties, events, and procedures that the structure comprises.
Structure Box
Public length As Double           
Public breadth As Double   
Public height As Double
End Structure
6Module Statement Declares the name of a module and introduces the definition of the variables, properties, events, and procedures that the module comprises.
Public Module myModule
Sub Main()
Dim user As String = 
InputBox("What is your name?") 
MsgBox("User name is" & user)
End Sub 
End Module
7Interface Statement  Declares the name of an interface and introduces the definitions of the members that the interface comprises.
Public Interface MyInterface
    Sub doSomething()
End Interface 
8Function Statement  Declares the name, parameters, and code that define a Function procedure.
Function myFunction
(ByVal n As Integer) As Double 
    Return 5.87 * n
End Function
9Sub Statement  Declares the name, parameters, and code that define a Sub procedure.
Sub mySub(ByVal s As String)
    Return
End Sub 
10Declare Statement Declares a reference to a procedure implemented in an external file.
Declare Function getUserName
Lib "advapi32.dll" 
Alias "GetUserNameA" 
(
  ByVal lpBuffer As String, 
  ByRef nSize As Integer) As Integer 
11Operator Statement Declares the operator symbol, operands, and code that define an operator procedure on a class or structure.
Public Shared Operator +
(ByVal x As obj, ByVal y As obj) As obj
        Dim r As New obj
' implemention code for r = x + y
        Return r
    End Operator 
12Property Statement Declares the name of a property, and the property procedures used to store and retrieve the value of the property.
ReadOnly Property quote() As String 
    Get 
        Return quoteString
    End Get 
End Property
13Event Statement Declares a user-defined event.
Public Event Finished()
14Delegate Statement Used to declare a delegate.
Delegate Function MathOperator( 
    ByVal x As Double, 
    ByVal y As Double 
) As Double 

Executable Statements

An executable statement performs an action. Statements calling a procedure, branching to another place in the code, looping through several statements, or evaluating an expression are executable statements. An assignment statement is a special case of an executable statement.
Example
The following example demonstrates a decision making statement:
Module decisions
   Sub Main()
      'local variable definition '
      Dim a As Integer = 10

      ' check the boolean condition using if statement '
      If (a < 20) Then
         ' if condition is true then print the following '
         Console.WriteLine("a is less than 20")
      End If
      Console.WriteLine("value of a is : {0}", a)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
a is less than 20;
value of a is : 10

The VB.Net compiler directives give instruction to the compiler to preprocess the information before actual compilation starts.
All these directives begin with #, and only white-space characters may appear before a directive on a line. These directives are not statements.
VB.Net compiler does not have a separate preprocessor; however, the directives are processed as if there was one. In VB.Net the compiler directives are used to help in conditional compilation. Unlike C and C++ directives, they are not used to create macros.

Compiler Directives in VB.Net

VB.Net provides the following set of compiler directives:
  • The #Const Directive
  • The #ExternalSource Directive
  • The #If...Then...#Else Directives
  • The #Region Directive

The #Const Directive

This directive defines conditional compiler constants. Syntax for this directive is:
#Const constname = expression
Where,
  • constname: specifies the name of the constant. Required.
  • expression: it is either a literal, or other conditional compiler constant, or a combination including any or all arithmetic or logical operators except Is
For example,
#Const state = "WEST BENGAL"

Example

The following code demonstrates a hypothetical use of the directive:
Module mydirectives
#Const age = True
Sub Main()
   #If age Then
      Console.WriteLine("You are welcome to the Robotics Club")
   #End If
   Console.ReadKey()
End Sub
End Module
When the above code is compiled and executed, it produces following result:
You are welcome to the Robotics Club

The #ExternalSource Directive

This directive is used for indicating a mapping between specific lines of source code and text external to the source. It is used only by the compiler and the debugger, has no effect on code compilation.
This directive allows including external code from an external code file into a source code file.
Syntax for this directive is:
#ExternalSource( StringLiteral , IntLiteral )
    [ LogicalLine ]
#End ExternalSource
The parameters of #ExternalSource directive are the path of external file, line number of the first line, and the line where the error occurred.

Example

The following code demonstrates a hypothetical use of the directive:
Module mydirectives
    Public Class ExternalSourceTester

        Sub TestExternalSource()

        #ExternalSource("c:\vbprogs\directives.vb", 5)
            Console.WriteLine("This is External Code. ")
        #End ExternalSource

        End Sub
    End Class

    Sub Main()
        Dim t As New ExternalSourceTester()
        t.TestExternalSource()
        Console.WriteLine("In Main.")
        Console.ReadKey()

    End Sub
When the above code is compiled and executed, it produces following result:
This is External Code.
In Main.

The #If...Then...#Else Directives

This directive conditionally compiles selected blocks of Visual Basic code.
Syntax for this directive is:
#If expression Then
   statements
[ #ElseIf expression Then
   [ statements ]
...
#ElseIf expression Then
   [ statements ] ]
[ #Else
   [ statements ] ]
#End If
For example,
#Const TargetOS = "Linux"
#If TargetOS = "Windows 7" Then
   ' Windows 7 specific code
#ElseIf TargetOS = "WinXP" Then
   ' Windows XP specific code
#Else
   ' Code for other OS
#End if

Example

The following code demonstrates a hypothetical use of the directive:
Module mydirectives
#Const classCode = 8

   Sub Main()
   #If classCode = 7 Then
        Console.WriteLine("Exam Questions for Class VII")
   #ElseIf classCode = 8 Then
        Console.WriteLine("Exam Questions for Class VIII")
   #Else
        Console.WriteLine("Exam Questions for Higher Classes")
   #End If
        Console.ReadKey()

    End Sub
End Module
When the above code is compiled and executed, it produces following result:
Exam Questions for Class VIII

The #Region Directive

This directive helps in collapsing and hiding sections of code in Visual Basic files.
Syntax for this directive is:
#Region "identifier_string" 
#End Region
For example,
#Region "StatsFunctions" 
    ' Insert code for the Statistical functions here.
#End Region

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. VB.Net is rich in built-in operators and provides following type of commonly used operators:
  • Arithmetic Operators
  • Comparison Operators
  • Logical/Bitwise Operators
  • Bit Shift Operators
  • Assignment Operators
  • Miscellaneous Operators
This tutorial will explain the most commonly used operators.

Arithmetic Operators

Following table shows all the arithmetic operators supported by VB.Net. Assume variable A holds 2 and variable B holds 7 then:
OperatorDescriptionExample
^Raises one operand to the power of anotherB^A will give 49
+Adds two operandsA + B will give 9
-Subtracts second operand from the firstA - B will give -5
*Multiply both operandsA * B will give 14
/Divide one operand by another and returns a floating point resultB / A will give 3.5
\Divide one operand by another and returns an integer resultB \ A will give 3
MODModulus Operator and remainder of after an integer divisionB MOD A will give 1

Comparison Operators

Following table shows all the comparison operators supported by VB.Net. Assume variable A holds 10 and variableB holds 20 then:
OperatorDescriptionExample
==Checks if the value of two operands is equal or not, if yes then condition becomes true.(A == B) is not true.
<>Checks if the value of two operands is equal or not, if values are not equal then condition becomes true.(A <> B) is true.
>Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.(A > B) is not true.
<Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.(A < B) is true.
>=Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.(A >= B) is not true.
<=Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.(A <= B) is true.
Apart from the above, VB.Net provides three more comparison operators, which we will be using in forthcoming chapters; however, we give a brief description here.
  • Is Operator - It compares two object reference variables and determines if two object references refer to the same object without performing value comparisons. If object1 and object2 both refer to the exact same object instance, result is True; otherwise, result is False.
  • IsNot Operator - It also compares two object reference variables and determines if two object references refer to different objects. If object1 and object2 both refer to the exact same object instance, result is False; otherwise, result is True.
  • Like Operator - It compares a string against a pattern.

Logical/Bitwise Operators

Following table shows all the logical operators supported by VB.Net. Assume variable A holds Boolean value True and variable B holds Boolean value False then:
OperatorDescriptionExample
AndIt is the logical as well as bitwise AND operator. If both the operands are true then condition becomes true. This operator does not perform short-circuiting, i.e., it evaluates both the expressions.(A And B) is False.
OrIt is the logical as well as bitwise OR operator. If any of the two operands is true then condition becomes true. This operator does not perform short-circuiting, i.e., it evaluates both the expressions.(A Or B) is True.
NotIt is the logical as well as bitwise NOT operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.Not(A And B) is True.
XorIt is the logical as well as bitwise Logical Exclusive OR operator. It returns True if both expressions are True or both expressions are False; otherwise it returns False. This operator does not perform short-circuiting, it always evaluates both expressions and there is no short-circuiting counterpart of this operatorA Xor B is True.
AndAlsoIt is the logical AND operator. It works only on Boolean data. It performs short-circuiting.(A AndAlso B) is False.
OrElseIt is the logical OR operator. It works only on Boolean data. It performs short-circuiting.(A OrElse B) is True.
IsFalseIt determines whether an expression is False.
IsTrueIt determines whether an expression is True.

Bit Shift Operators

We have already discussed the bitwise operators. The bit shift operators perform the shift operations on binary values. Before coming into the bit shift operators, let us understand the bit operations.
Bitwise operators work on bits and perform bit by bit operation. The truth tables for &, |, and ^ are as follows:
pqp & qp | qp ^ q
00000
01011
11110
10011
Assume if A = 60; and B = 13; Now in binary format they will be as follows:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A  = 1100 0011
We have seen that the Bitwise operators supported by VB.Net are And, Or, Xor and Not. The Bit shift operators are >> and << for left shift and right shift respectively.
Assume that the variable A holds 60 and variable B holds 13 then:
OperatorDescriptionExample
AndBitwise AND Operator copies a bit to the result if it exists in both operands.(A AND B) will give 12 which is 0000 1100
OrBinary OR Operator copies a bit if it exists in either operand.(A Or B) will give 61 which is 0011 1101
XorBinary XOR Operator copies the bit if it is set in one operand but not both.(A Xor B) will give 49 which is 0011 0001
NotBinary Ones Complement Operator is unary and has the effect of 'flipping' bits.(Not A ) will give -61 which is 1100 0011 in 2's complement form due to a signed binary number.
<<Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.A << 2 will give 240 which is 1111 0000
>>Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.A >> 2 will give 15 which is 0000 1111

Assignment Operators

There are following assignment operators supported by VB.Net:
OperatorDescriptionExample
=Simple assignment operator, Assigns values from right side operands to left side operandC = A + B will assign value of A + B into C
+=Add AND assignment operator, It adds right operand to the left operand and assign the result to left operandC += A is equivalent to C = C + A
-=Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operandC -= A is equivalent to C = C - A
*=Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operandC *= A is equivalent to C = C * A
/=Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand(floating point division)C /= A is equivalent to C = C / A
\=Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand (Integer division)C \= A is equivalent to C = C \A
^=Exponentiation and assignment operator. It raises the left operand to the power of the right operand and assigns the result to left operand.C^=A is equivalent to C = C ^ A
<<=Left shift AND assignment operatorC <<= 2 is same as C = C << 2
>>=Right shift AND assignment operatorC >>= 2 is same as C = C >> 2
&=Concatenates a String expression to a String variable or property and assigns the result to the variable or property.Str1 &= Str2 is same as  Str1 = Str1 & Str2

Miscellaneous Operators

There are few other important operators supported by VB.Net.
OperatorDescriptionExample
AddressOfReturns the address of a procedure.
AddHandler Button1.Click,
AddressOf Button1_Click
AwaitIt is applied to an operand in an asynchronous method or lambda expression to suspend execution of the method until the awaited task completes.
 Dim result As res
= Await AsyncMethodThatReturnsResult()
Await AsyncMethod()
GetTypeIt returns a Type object for the specified type. The Type object provides information about the type such as its properties, methods, and events.
MsgBox(GetType(Integer).ToString())
Function ExpressionIt declares the parameters and code that define a function lambda expression.
Dim add5 = Function(num As
 Integer) num + 5
'prints 10
Console.WriteLine(add5(5))
IfIt uses short-circuit evaluation to conditionally return one of two values. The If operator can be called with three arguments or with two arguments.
Dim num = 5
Console.WriteLine(If(num >= 0,
"Positive", "Negative"))

Operators Precedence in VB.Net

Operator precedence determines the grouping of terms in an expression. This affects how an expression is evaluated. Certain operators have higher precedence than others; for example, the multiplication operator has higher precedence than the addition operator:
For example x = 7 + 3 * 2; Here x is assigned 13, not 20 because operator * has higher precedence than + so it first get multiplied with 3*2 and then adds into 7.
Here operators with the highest precedence appear at the top of the table, those with the lowest appear at the bottom. Within an expression, higher precedence operators will be evaluated first.
OperatorPrecedence
AwaitHighest
Exponentiation (^)
Unary identity and negation (+, -)
Multiplication and floating-point division (*, /)
Integer division (\)
Modulus arithmetic (Mod)
Addition and subtraction (+, -)
Arithmetic bit shift (<<, >>)
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is)
Negation (Not)
Conjunction (And, AndAlso)
Inclusive disjunction (Or, OrElse)
Exclusive disjunction (Xor)Lowest

Decision making structures require that the programmer specify one or more conditions to be evaluated or tested by the program, along with a statement or statements to be executed if the condition is determined to be true, and optionally, other statements to be executed if the condition is determined to be false.
Following is the general from of a typical decision making structure found in most of the programming languages:
Decision making statements in VB.Net
VB.Net provides following types of decision making statements. Click the following links to check their detail.
StatementDescription
If ... Then statementAn If...Then statement consists of a boolean expression followed by one or more statements.
If...Then...Else statementAn If...Then statement can be followed by an optional Else statement, which executes when the boolean expression is false.
nested If statementsYou can use one If or Else if statement inside another If or Else ifstatement(s).
Select Case statementA Select Case statement allows a variable to be tested for equality against a list of values.
nested Select Case statementsYou can use one select case statement inside another select casestatement(s).
It is the simplest form of control statement, frequently used in decision making and changing the control flow of the program execution. Syntax for if-then statement is:
If condition Then 
[Statement(s)]
End If
Where condition is a Boolean or relational condition and Statement(s) is a simple or compound statement. Example of an If-Then statement is:
If (a <= 20) Then
   c= c+1
End If
If the condition evaluates to true then the block of code inside the If statement will be executed. If condition evaluates to false then the first set of code after the end of the If statement (after the closing End If) will be executed.

Flow Diagram:

VB.Net if statement

Example:

Module decisions
    Sub Main()
        'local variable definition 
        Dim a As Integer = 10

        ' check the boolean condition using if statement 
        If (a < 20) Then
            ' if condition is true then print the following 
            Console.WriteLine("a is less than 20")
        End If
        Console.WriteLine("value of a is : {0}", a)
        Console.ReadLine()
    End Sub
End Module
When the above code is compiled and executed, it produces following result:
a is less than 20
value of a is : 10

An If statement can be followed by an optional Else statement, which executes when the Boolean expression is false.

Syntax:

The syntax of an If...Then... Else statement in VB.Net is as follows:
If(boolean_expression)Then
   'statement(s) will execute if the Boolean expression is true 
Else
  'statement(s) will execute if the Boolean expression is false 
End If
If the Boolean expression evaluates to true then the if block of code will be executed otherwise else block of code will be executed.

Flow Diagram:

VB.Net if...else statement

Example:

Module decisions
   Sub Main()
       'local variable definition '
      Dim a As Integer = 100

      ' check the boolean condition using if statement 
      If (a < 20) Then
          ' if condition is true then print the following 
          Console.WriteLine("a is less than 20")
      Else
          ' if condition is false then print the following 
          Console.WriteLine("a is not less than 20")
      End If
      Console.WriteLine("value of a is : {0}", a)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
a is not less than 20
value of a is : 100

The If...Else If...Else Statement

An If statement can be followed by an optional Else if...Else statement, which is very useful to test various conditions using single If...Else If statement.
When using If... Else If... Else statements there are few points to keep in mind.
  • An If can have zero or one Else's and it must come after any Else If's.
  • An If can have zero to many Else If's and they must come before the Else.
  • Once an Else if succeeds, none of the remaining Else If's or Else's will be tested.

Syntax:

The syntax of an if...else if...else statement in VB.Net is as follows:
If(boolean_expression 1)Then
   ' Executes when the boolean expression 1 is true 
ElseIf( boolean_expression 2)Then
   ' Executes when the boolean expression 2 is true 
ElseIf( boolean_expression 3)Then
   ' Executes when the boolean expression 3 is true 
Else 
   ' executes when the none of the above condition is true 
End If

Example:

Module decisions
   Sub Main()
      'local variable definition '
      Dim a As Integer = 100
      ' check the boolean condition '
      If (a = 10) Then
          ' if condition is true then print the following '
          Console.WriteLine("Value of a is 10") '
      ElseIf (a = 20) Then
          'if else if condition is true '
          Console.WriteLine("Value of a is 20") '
      ElseIf (a = 30) Then
          'if else if condition is true  
          Console.WriteLine("Value of a is 30")
      Else
          'if none of the conditions is true 
          Console.WriteLine("None of the values is matching")
      End If
      Console.WriteLine("Exact value of a is: {0}", a)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
None of the values is matching
Exact value of a is: 100

It is always legal in VB.Net to nest If-Then-Else statements, which means you can use one If or ElseIf statement inside another If ElseIf statement(s).

Syntax:

The syntax for a nested If statement is as follows:
If( boolean_expression 1)Then
   'Executes when the boolean expression 1 is true 
   If(boolean_expression 2)Then
         'Executes when the boolean expression 2 is true 
   End If
End If
You can nest ElseIf...Else in the similar way as you have nested If statement.

Example

Module decisions
   Sub Main()
      'local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      ' check the boolean condition 
      If (a = 100) Then
          ' if condition is true then check the following 
          If (b = 200) Then
              ' if condition is true then print the following 
              Console.WriteLine("Value of a is 100 and b is 200")
          End If
      End If
      Console.WriteLine("Exact value of a is : {0}", a)
      Console.WriteLine("Exact value of b is : {0}", b)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200
A Select Case statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each select case.

Syntax:

The syntax for a Select Case statement in VB.Net is as follows:
Select [ Case ] expression
    [ Case expressionlist
        [ statements ] ]
    [ Case Else
        [ elsestatements ] ]
End Select
Where,
  • expression: is an expression that must evaluate to any of the elementary data type in VB.Net, i.e., Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong, and UShort.
  • expressionlist: List of expression clauses representing match values for expression. Multiple expression clauses are separated by commas.
  • statements: statements following Case that run if the select expression matches any clause inexpressionlist.
  • elsestatements: statements following Case Else that run if the select expression does not match any clause in the expressionlist of any of the Case statements.

Flow Diagram:

select case statement in VB.Net

Example:

Module decisions
   Sub Main()
      'local variable definition
      Dim grade As Char
      grade = "B"
      Select grade
          Case "A"
              Console.WriteLine("Excellent!")
          Case "B", "C"
              Console.WriteLine("Well done")
          Case "D"
              Console.WriteLine("You passed")
          Case "F"
              Console.WriteLine("Better try again")
          Case Else
              Console.WriteLine("Invalid grade")
      End Select
      Console.WriteLine("Your grade is  {0}", grade)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Well done
Your grade is B
It is possible to have a select statement as part of the statement sequence of an outer select statement. Even if the case constants of the inner and outer select contain common values, no conflicts will arise.

Example

Module decisions
   Sub Main()
      'local variable definition
      Dim a As Integer = 100
      Dim b As Integer = 200
      Select a
          Case 100
              Console.WriteLine("This is part of outer case ")
              Select Case b
                  Case 200
                      Console.WriteLine("This is part of inner case ")
              End Select
      End Select
      Console.WriteLine("Exact value of a is : {0}", a)
      Console.WriteLine("Exact value of b is : {0}", b)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
This is part of outer case
This is part of inner case
Exact value of a is : 100
Exact value of b is : 200
There may be a situation when you need to execute a block of code several number of times. In general statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general from of a loop statement in most of the programming languages:
Loop Architecture
VB.Net provides following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Do LoopIt repeats the enclosed block of statements while a Boolean condition is True or until the condition becomes True. It could be terminated at any time with the Exit Do statement.
For...NextIt repeats a group of statements a specified number of times and a loop index counts the number of loop iterations as the loop executes.
For Each...NextIt repeats a group of statements for each element in a collection. This loop is used for accessing and manipulating all elements in an array or a VB.Net collection.
While... End WhileIt executes a series of statements as long as a given condition is True.
With... End WithIt is not exactly a looping construct. It executes a series of statements that repeatedly refers to a single object or structure.
Nested loopsYou can use one or more loop inside any another While, For or Do loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
VB.Net provides the following control statements. Click the following links to check their detail.
Control StatementDescription
Exit statementTerminates the loop or select case statement and transfers execution to the statement immediately following the loop or select case.
Continue statementCauses the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
GoTo statementTransfers control to the labeled statement. Though it is not advised to use GoTo statement in your program.
It repeats the enclosed block of statements while a Boolean condition is True or until the condition becomes True. It could be terminated at any time with the Exit Do statement.
The syntax for this loop construct is:
Tutorial content goes here.....
Do { While | Until } condition
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop
-or-
Do
    [ statements ]
    [ Continue Do ]
    [ statements ]
    [ Exit Do ]
    [ statements ]
Loop { While | Until } condition

Flow Diagram:

do loop in VB.Net

Example:

Module loops
   Sub Main()
      ' local variable definition 
      Dim a As Integer = 10
      'do loop execution 
      Do
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
      Loop While (a < 20)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
The program would behave in same way, if you use an Until statement, instead of While:
Module loops
   Sub Main()
      ' local variable definition 
      Dim a As Integer = 10
      'do loop execution 
      Do
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
      Loop Until (a = 20)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
It repeats a group of statements a specified number of times and a loop index counts the number of loop iterations as the loop executes.
The syntax for this loop construct is:
For counter [ As datatype ] = start To end [ Step step ]
    [ statements ]
    [ Continue For ]
    [ statements ]
    [ Exit For ]
    [ statements ]
Next [ counter ]

Flow Diagram:

for loop in VB.Net

Example

Module loops
   Sub Main()
      Dim a As Byte
      ' for loop execution 
      For a = 10 To 20
          Console.WriteLine("value of a: {0}", a)
      Next
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
value of a: 20
If you want to use a step size of 2, for example, you need to display only even numbers, between 10 and 20:
Module loops
   Sub Main()
      Dim a As Byte
      ' for loop execution 
      For a = 10 To 20 Step 2
          Console.WriteLine("value of a: {0}", a)
      Next
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 12
value of a: 14
value of a: 16
value of a: 18
value of a: 20
It repeats a group of statements for each element in a collection. This loop is used for accessing and manipulating all elements in an array or a VB.Net collection.
The syntax for this loop construct is:
For Each element [ As datatype ] In group
    [ statements ]
    [ Continue For ]
    [ statements ]
    [ Exit For ]
    [ statements ]
Next [ element ]

Example

Module loops
   Sub Main()
      Dim anArray() As Integer = {1, 3, 5, 7, 9}
      Dim arrayItem As Integer
     'displaying the values
      For Each arrayItem In anArray
          Console.WriteLine(arrayItem)
      Next
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
1
3
5
7
9
It executes a series of statements as long as a given condition is True.
The syntax for this loop construct is:
While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While
Here statement(s) may be a single statement or a block of statements. The condition may be any expression, and true is logical true. The loop iterates while the condition is true.
When the condition becomes false, program control passes to the line immediately following the loop.

Flow Diagram:

while loop in VB.Net
Here key point of the While loop is that the loop might not ever run. When the condition is tested and the result is false, the loop body will be skipped and the first statement after the while loop will be executed.

Example

Module loops
   Sub Main()
      Dim a As Integer = 10
      ' while loop execution '
      While a < 20
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
      End While
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
It is not exactly a looping construct. It executes a series of statements that repeatedly refers to a single object or structure.
The syntax for this loop construct is:
With object
    [ statements ]
End With

Example

Module loops
   Public Class Book
      Public Property Name As String
      Public Property Author As String
      Public Property Subject As String
   End Class
   Sub Main()
      Dim aBook As New Book
      With aBook
          .Name = "VB.Net Programming"
          .Author = "Zara Ali"
          .Subject = "Information Technology"
      End With
      With aBook
          Console.WriteLine(.Name)
          Console.WriteLine(.Author)
          Console.WriteLine(.Subject)
      End With
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
VB.Net Programming
Zara Ali
Information Technology
VB.Net allows using one loop inside another loop. Following section shows few examples to illustrate the concept.

Syntax:

The syntax for a nested For loop statement in VB.Net is as follows:
For counter1 [ As datatype1 ] = start1 To end1 [ Step step1 ]
    For counter2 [ As datatype2 ] = start2 To end2 [ Step step2 ]
    ...
    Next [ counter2 ]
Next [ counter 1]
The syntax for a nested While loop statement in VB.Net is as follows:
While condition1
    While condition2
    ...
    End While
End While
The syntax for a nested Do...While loop statement in VB.Net is as follows:
Do { While | Until } condition1
    Do { While | Until } condition2
    ...
    Loop
Loop
A final note on loop nesting is that you can put any type of loop inside of any other type of loop. For example a for loop can be inside a while loop or vice versa.

Example:

The following program uses a nested for loop to find the prime numbers from 2 to 100:
Module loops
   Sub Main()
      ' local variable definition 
      Dim i, j As Integer
      For i = 2 To 100
          For j = 2 To i
              ' if factor found, not prime
              If ((i Mod j) = 0) Then
                  Exit For
              End If
          Next j
          If (j > (i \ j)) Then
              Console.WriteLine("{0} is prime", i)
          End If
      Next i
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime
The Exit statement transfers the control from a procedure or block immediately to the statement following the procedure call or the block definition. It terminates the loop, procedure, try block or the select block from where it is called.
If you are using nested loops ( i.e., one loop inside another loop), the Exit statement will stop the execution of the innermost loop and start executing the next line of code after the block.

Syntax:

The syntax for the Exit statement is:
Exit { Do | For | Function | Property | Select | Sub | Try | While }

Flow Diagram:

VB.Net exit statement

Example:

Module loops
   Sub Main()
      ' local variable definition 
      Dim a As Integer = 10
      ' while loop execution '
      While (a < 20)
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
          If (a > 15) Then
              'terminate the loop using exit statement 
              Exit While
          End If
      End While
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
The Continue statement causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating. It works somewhat like the Exit statement. Instead of forcing termination, it forces the next iteration of the loop to take place, skipping any code in between.
For the For...Next loop, Continue statement causes the conditional test and increment portions of the loop to execute. For the While and Do...While loops, continue statement causes the program control passes to the conditional tests.

Syntax:

The syntax for a Continue statement is as follows:
Continue { Do | For | While }

Flow Diagram:

VB.Net continue statement

Example:

Module loops
   Sub Main()
      ' local variable definition 
      Dim a As Integer = 10
      Do
          If (a = 15) Then
              ' skip the iteration '
              a = a + 1
              Continue Do
          End If
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
      Loop While (a < 20)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19
The GoTo statement transfer controls unconditionally to a specified line in a procedure.
The syntax for the GoTo statement is:
GoTo label

Flow Diagram:

VB.Net goto statement

Example:

Module loops
   Sub Main()
      ' local variable definition 
      Dim a As Integer = 10
Line1:
      Do
          If (a = 15) Then
              ' skip the iteration '
              a = a + 1
              GoTo Line1
          End If
          Console.WriteLine("value of a: {0}", a)
          a = a + 1
      Loop While (a < 20)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19
In VB.Net you can use strings as array of characters, however, more common practice is to use the String keyword to declare a string variable. The string keyword is an alias for the System.String class.

Creating a String Object

You can create string object using one of the following methods:
  • By assigning a string literal to a String variable
  • By using a String class constructor
  • By using the string concatenation operator (+)
  • By retrieving a property or calling a method that returns a string
  • By calling a formatting method to convert a value or object to its string representation
The following example demonstrates this:
Module strings
   Sub Main()
      Dim fname, lname, fullname, greetings As String
      fname = "Rowan"
      lname = "Atkinson"
      fullname = fname + " " + lname
      Console.WriteLine("Full Name: {0}", fullname)

     'by using string constructor
      Dim letters As Char() = {"H", "e", "l", "l", "o"}
      greetings = New String(letters)
      Console.WriteLine("Greetings: {0}", greetings)

      'methods returning String
      Dim sarray() As String = {"Hello", "From", "Tutorials", "Point"}
      Dim message As String = String.Join(" ", sarray)
      Console.WriteLine("Message: {0}", message)

      'formatting method to convert a value 
      Dim waiting As DateTime = New DateTime(2012, 12, 12, 17, 58, 1)
      Dim chat As String = String.Format("Message sent at {0:t} on {0:D}", waiting)
      Console.WriteLine("Message: {0}", chat)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, December 12, 2012

Properties of the String Class

The String class has the following two properties:
S.NProperty Name & Description
1Chars Gets the Char object at a specified position in the current String object.
2Length Gets the number of characters in the current String object.

Methods of the String Class

The String class has numerous methods that help you in working with the string objects. The following table provides some of the most commonly used methods:
S.NMethod Name & Description
1Public Shared Function Compare ( strA As String, strB As String ) As Integer  Compares two specified string objects and returns an integer that indicates their relative position in the sort order.
2Public Shared Function Compare ( strA As String, strB As String, ignoreCase As Boolean ) As Integer  Compares two specified string objects and returns an integer that indicates their relative position in the sort order. However, it ignores case if the Boolean parameter is true.
3Public Shared Function Concat ( str0 As String, str1 As String ) As String  Concatenates two string objects.
4Public Shared Function Concat ( str0 As String, str1 As String, str2 As String ) As String  Concatenates three string objects.
5Public Shared Function Concat ( str0 As String, str1 As String, str2 As String, str3 As String ) As String  Concatenates four string objects.
6Public Function Contains ( value As String ) As Boolean  Returns a value indicating whether the specified string object occurs within this string.
7Public Shared Function Copy ( str As String ) As String  Creates a new String object with the same value as the specified string.
8pPublic Sub CopyTo ( sourceIndex As Integer, destination As Char(), destinationIndex As Integer, count As Integer )  Copies a specified number of characters from a specified position of the string object to a specified position in an array of Unicode characters.
9Public Function EndsWith ( value As String ) As Boolean  Determines whether the end of the string object matches the specified string.
10Public Function Equals ( value As String ) As Boolean  Determines whether the current string object and the specified string object have the same value.
11Public Shared Function Equals ( a As String, b As String ) As Boolean  Determines whether two specified string objects have the same value.
12Public Shared Function Format ( format As String, arg0 As Object ) As String  Replaces one or more format items in a specified string with the string representation of a specified object.
13Public Function IndexOf ( value As Char ) As Integer  Returns the zero-based index of the first occurrence of the specified Unicode character in the current string.
14Public Function IndexOf ( value As String ) As Integer  Returns the zero-based index of the first occurrence of the specified string in this instance.
15Public Function IndexOf ( value As Char, startIndex As Integer ) As Integer  Returns the zero-based index of the first occurrence of the specified Unicode character in this string, starting search at the specified character position.
16Public Function IndexOf ( value As String, startIndex As Integer ) As Integer  Returns the zero-based index of the first occurrence of the specified string in this instance, starting search at the specified character position.
17Public Function IndexOfAny ( anyOf As Char() ) As Integer  Returns the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters.
18Public Function IndexOfAny ( anyOf As Char(), startIndex As Integer ) As Integer  Returns the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters, starting search at the specified character position.
19Public Function Insert ( startIndex As Integer, value As String ) As String  Returns a new string in which a specified string is inserted at a specified index position in the current string object.
20Public Shared Function IsNullOrEmpty ( value As String ) As Boolean  Indicates whether the specified string is null or an Empty string.
21Public Shared Function Join ( separator As String, ParamArray value As String() ) As String  Concatenates all the elements of a string array, using the specified separator between each element.
22Public Shared Function Join ( separator As String, value As String(), startIndex As Integer, count As Integer ) As String  Concatenates the specified elements of a string array, using the specified separator between each element.
23Public Function LastIndexOf ( value As Char ) As Integer  Returns the zero-based index position of the last occurrence of the specified Unicode character within the current string object.
24Public Function LastIndexOf ( value As String ) As Integer  Returns the zero-based index position of the last occurrence of a specified string within the current string object.
25Public Function Remove ( startIndex As Integer ) As String  Removes all the characters in the current instance, beginning at a specified position and continuing through the last position, and returns the string.
26Public Function Remove ( startIndex As Integer, count As Integer ) As String  Removes the specified number of characters in the current string beginning at a specified position and returns the string.
27Public Function Replace ( oldChar As Char, newChar As Char ) As String  Replaces all occurrences of a specified Unicode character in the current string object with the specified Unicode character and returns the new string.
28Public Function Replace ( oldValue As String, newValue As String ) As String  Replaces all occurrences of a specified string in the current string object with the specified string and returns the new string.
29Public Function Split ( ParamArray separator As Char() ) As String()  Returns a string array that contains the substrings in the current string object, delimited by elements of a specified Unicode character array.
30Public Function Split ( separator As Char(), count As Integer ) As String()  Returns a string array that contains the substrings in the current string object, delimited by elements of a specified Unicode character array. The int parameter specifies the maximum number of substrings to return.
31Public Function StartsWith ( value As String ) As Boolean  Determines whether the beginning of this string instance matches the specified string.
32Public Function ToCharArray As Char() Returns a Unicode character array with all the characters in the current string object.
33Public Function ToCharArray ( startIndex As Integer, length As Integer ) As Char()  Returns a Unicode character array with all the characters in the current string object, starting from the specified index and up to the specified length.
34Public Function ToLower As String Returns a copy of this string converted to lowercase.
35Public Function ToUpper As String Returns a copy of this string converted to uppercase.
36Public Function Trim As String Removes all leading and trailing white-space characters from the current String object.
The above list of methods is not exhaustive, please visit MSDN library for the complete list of methods and String class constructors.

Examples:

The following example demonstrates some of the methods mentioned above:
Comparing Strings:
#include <include.h>
Module strings
   Sub Main()
      Dim str1, str2 As String
      str1 = "This is test"
      str2 = "This is text"
      If (String.Compare(str1, str2) = 0) Then
          Console.WriteLine(str1 + " and " + str2 +
                            " are equal.")
      Else
          Console.WriteLine(str1 + " and " + str2 +
                            " are not equal.")
      End If
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
This is test and This is text are not equal.
String Contains String:
Module strings
   Sub Main()
      Dim str1 As String
      str1 = "This is test"
      If (str1.Contains("test")) Then
          Console.WriteLine("The sequence 'test' was found.")
      End If
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
The sequence 'test' was found.
Getting a Substring:
Module strings
   Sub Main()
      Dim str As String
      str = "Last night I dreamt of San Pedro"
      Console.WriteLine(str)
      Dim substr As String = str.Substring(23)
      Console.WriteLine(substr)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Last night I dreamt of San Pedro
San Pedro.
Joining Strings:
Module strings
   Sub Main()
      Dim strarray As String() = {"Down the way where the nights are gay",
                          "And the sun shines daily on the mountain top",
                           "I took a trip on a sailing ship",
                          "And when I reached Jamaica",
                          "I made a stop"}
      Dim str As String = String.Join(vbCrLf, strarray)
      Console.WriteLine(str)
      Console.ReadLine()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Down the way where the nights are gay
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
Most of the software you write needs implementing some form of date functions returning current date and time. Dates are so much part of everyday life that it becomes easy to work with them without thinking. VB.Net also provides powerful tools for date arithmetic that makes manipulating dates easy.
The Date data type contains date values, time values, or date and time values. The default value of Date is 0:00:00 (midnight) on January 1, 0001. The equivalent .NET data type is System.DateTime.
The DateTime structure represents an instant in time, typically expressed as a date and time of day
'Declaration
<SerializableAttribute> _
Public Structure DateTime _
	Implements IComparable, IFormattable, IConvertible, ISerializable,  
	IComparable(Of DateTime), IEquatable(Of DateTime)
You can also get the current date and time from the DateAndTime class.
The DateAndTime module contains the procedures and properties used in date and time operations.
'Declaration
<StandardModuleAttribute> _
Public NotInheritable Class DateAndTime
Note: Both the DateTime structure and the DateAndTime module contains properties like Now and Today, so often beginners find it confusing. The DateAndTime class belongs to the Microsoft.VisualBasic namespace and the DateTime structure belongs to the System namespace. Therefore, using the later would help you in porting your code to another .Net language like C#. However, the DateAndTime class/module contains all the legacy date functions available in Visual Basic.

Properties and Methods of the DateTime Structure

The following table lists some of the commonly used properties of the DateTime Structure:
S.NPropertyDescription
1DateGets the date component of this instance.
2DayGets the day of the month represented by this instance.
3DayOfWeekGets the day of the week represented by this instance.
4DayOfYearGets the day of the year represented by this instance.
5HourGets the hour component of the date represented by this instance.
6KindGets a value that indicates whether the time represented by this instance is based on local time, Coordinated Universal Time (UTC), or neither.
7MillisecondGets the milliseconds component of the date represented by this instance.
8MinuteGets the minute component of the date represented by this instance.
9MonthGets the month component of the date represented by this instance.
10NowGets a DateTime object that is set to the current date and time on this computer, expressed as the local time.
11SecondGets the seconds component of the date represented by this instance.
12TicksGets the number of ticks that represent the date and time of this instance.
13TimeOfDayGets the time of day for this instance.
14TodayGets the current date.
15UtcNowGets a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC).
16YearGets the year component of the date represented by this instance.
The following table lists some of the commonly used methods of the DateTime structure:
S.NMethod Name & Description
1Public Function Add ( value As TimeSpan ) As DateTime  Returns a new DateTime that adds the value of the specified TimeSpan to the value of this instance.
2Public Function AddDays ( value As Double ) As DateTime  Returns a new DateTime that adds the specified number of days to the value of this instance.
3Public Function AddHours ( value As Double ) As DateTime  Returns a new DateTime that adds the specified number of hours to the value of this instance.
4Public Function AddMinutes ( value As Double ) As DateTime  Returns a new DateTime that adds the specified number of minutes to the value of this instance.
5Public Function AddMonths ( months As Integer ) As DateTime  Returns a new DateTime that adds the specified number of months to the value of this instance.
6Public Function AddSeconds ( value As Double ) As DateTime  Returns a new DateTime that adds the specified number of seconds to the value of this instance.
7Public Function AddYears ( value As Integer ) As DateTime  Returns a new DateTime that adds the specified number of years to the value of this instance.
8Public Shared Function Compare ( t1 As DateTime, t2 As DateTime ) As Integer  Compares two instances of DateTime and returns an integer that indicates whether the first instance is earlier than, the same as, or later than the second instance.
9Public Function CompareTo ( value As DateTime ) As Integer  Compares the value of this instance to a specified DateTime value and returns an integer that indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.
10Public Function Equals ( value As DateTime ) As Boolean  Returns a value indicating whether the value of this instance is equal to the value of the specified DateTime instance.
11Public Shared Function Equals ( t1 As DateTime, t2 As DateTime ) As Boolean  Returns a value indicating whether two DateTime instances have the same date and time value.
12Public Overrides Function ToString As String  Converts the value of the current DateTime object to its equivalent string representation.
The above list of methods is not exhaustive, please visit Microsoft documentation for the complete list of methods and properties of the DateTime structure.

Creating a DateTime Object

You can create a DateTime object, in one of the following ways:
  • By calling a DateTime constructor from any of the overloaded DateTime constructors.
  • By assigning the DateTime object a date and time value returned by a property or method.
  • By parsing the string representation of a date and time value.
  • By calling the DateTime structure's implicit default constructor.
The following example demonstrates this:
Module Module1
   Sub Main()
      'DateTime constructor: parameters year, month, day, hour, min, sec
      Dim date1 As New Date(2012, 12, 16, 12, 0, 0)
      'initializes a new DateTime value
      Dim date2 As Date = #12/16/2012 12:00:52 AM#
      'using properties
      Dim date3 As Date = Date.Now
      Dim date4 As Date = Date.UtcNow
      Dim date5 As Date = Date.Today
      Console.WriteLine(date1)
      Console.WriteLine(date2)
      Console.WriteLine(date3)
      Console.WriteLine(date4)
      Console.WriteLine(date5)
      Console.ReadKey()
   End Sub
End Module
When the above code was compiled and executed, it produced following result:
12/16/2012 12:00:00 PM
12/16/2012 12:00:52 PM
12/12/2012 10:22:50 PM
12/12/2012 12:00:00 PM

Getting the Current Date and Time:

The following programs demonstrate how to get the current date and time in VB.Net:
Current Time:
Module dateNtime
   Sub Main()
      Console.Write("Current Time: ")
      Console.WriteLine(Now.ToLongTimeString)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Current Time: 11 :05 :32 AM
Current Date:
Module dateNtime
   Sub Main()
      Console.WriteLine("Current Date: ")
      Dim dt As Date = Today
      Console.WriteLine("Today is: {0}", dt)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Today is: 12/11/2012 12:00:00 AM

Formatting Date

A Date literal should be enclosed within hash signs (# #), and specified in the format M/d/yyyy, for example #12/16/2012#. Otherwise, your code may change depending on the locale in which your application is running.
For example, you specified Date literal of #2/6/2012# for the date February 6, 2012. It is alright for the locale that uses mm/dd/yyyy format. However, in a locale that uses dd/mm/yyyy format, your literal would compile to June 2, 2012. If a locale uses another format say, yyyy/mm/dd, the literal would be invalid and cause a compiler error.
To convert a Date literal to the format of your locale, or to a custom format, use the Format function of String class, specifying either a predefined or user-defined date format.
The following example demonstrates this.
Module dateNtime
   Sub Main()
      Console.WriteLine("India Wins Freedom: ")
      Dim independenceDay As New Date(1947, 8, 15, 0, 0, 0)
      ' Use format specifiers to control the date display.
      Console.WriteLine(" Format 'd:' " & independenceDay.ToString("d"))
      Console.WriteLine(" Format 'D:' " & independenceDay.ToString("D"))
      Console.WriteLine(" Format 't:' " & independenceDay.ToString("t"))
      Console.WriteLine(" Format 'T:' " & independenceDay.ToString("T"))
      Console.WriteLine(" Format 'f:' " & independenceDay.ToString("f"))
      Console.WriteLine(" Format 'F:' " & independenceDay.ToString("F"))
      Console.WriteLine(" Format 'g:' " & independenceDay.ToString("g"))
      Console.WriteLine(" Format 'G:' " & independenceDay.ToString("G"))
      Console.WriteLine(" Format 'M:' " & independenceDay.ToString("M"))
      Console.WriteLine(" Format 'R:' " & independenceDay.ToString("R"))
      Console.WriteLine(" Format 'y:' " & independenceDay.ToString("y"))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
India Wins Freedom:
Format 'd:' 8/15/1947
Format 'D:' Friday, August 15, 1947
Format 't:' 12:00 AM
Format 'T:' 12:00:00 AM
Format 'f:' Friday, August 15, 1947 12:00 AM
Format 'F:' Friday, August 15, 1947 12:00:00 AM
Format 'g:' 8/15/1947 12:00 AM
Format 'G:' 8/15/1947 12:00:00 AM
Format 'M:' 8/15/1947 August 15
Format 'R:' Fri, 15 August 1947 00:00:00 GMT
Format 'y:' August, 1947

Predefined Date/Time Formats

The following table identifies the predefined date and time format names. These may be used by name as the style argument for the Format function:
FormatDescription
General Date, or GDisplays a date and/or time. For example, 1/12/2012 07:07:30 AM.
Long Date,Medium Date, or DDisplays a date according to your current culture's long date format. For example, Sunday, December 16, 2012.
Short Date, or dDisplays a date using your current culture's short date format. For example, 12/12/2012.
Long Time,Medium Time, orTDisplays a time using your current culture's long time format; typically includes hours, minutes, seconds. For example, 01:07:30 AM.
Short Time or tDisplays a time using your current culture's short time format. For example, 11:07 AM.
fDisplays the long date and short time according to your current culture's format. For example, Sunday, December 16, 2012 12:15 AM.
FDisplays the long date and long time according to your current culture's format. For example, Sunday, December 16, 2012 12:15:31 AM.
gDisplays the short date and short time according to your current culture's format. For example, 12/16/2012 12:15 AM.
M, mDisplays the month and the day of a date. For example, December 16.
R, rFormats the date according to the RFC1123Pattern property.
sFormats the date and time as a sortable index. For example, 2012-12-16T12:07:31.
uFormats the date and time as a GMT sortable index. For example, 2012-12-16 12:15:31Z.
UFormats the date and time with the long date and long time as GMT. For example, Sunday, December 16, 2012 6:07:31 PM.
Y, yFormats the date as the year and month. For example, December, 2012.
For other formats like, user defined formats, please consult Microsoft Documentation.

Properties and Methods of the DateAndTime Class

The following table lists some of the commonly used properties of the DateAndTime Class:
S.NPropertyDescription
1DateReturns or sets a String value representing the current date according to your system.
2NowReturns a Date value containing the current date and time according to your system.
3TimeOfDayReturns or sets a Date value containing the current time of day according to your system.
4TimerReturns a Double value representing the number of seconds elapsed since midnight.
5TimeStringReturns or sets a String value representing the current time of day according to your system.
6TodayGets the current date.
The following table lists some of the commonly used methods of the DateAndTime class:
S.NMethod Name & Description
1Public Shared Function DateAdd ( Interval As DateInterval, Number As Double, DateValue As DateTime ) As DateTime  Returns a Date value containing a date and time value to which a specified time interval has been added.
2Public Shared Function DateAdd ( Interval As String, Number As Double, DateValue As Object ) As DateTime  Returns a Date value containing a date and time value to which a specified time interval has been added.
3Public Shared Function DateDiff ( Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, DayOfWeek As FirstDayOfWeek, WeekOfYear As FirstWeekOfYear ) As Long  Returns a Long value specifying the number of time intervals between two Date values.
4Public Shared Function DatePart ( Interval As DateInterval, DateValue As DateTime, FirstDayOfWeekValue As FirstDayOfWeek, FirstWeekOfYearValue As FirstWeekOfYear ) As Integer  Returns an Integer value containing the specified component of a given Date value.
5Public Shared Function Day ( DateValue As DateTime ) As Integer  Returns an Integer value from 1 through 31 representing the day of the month.
6Public Shared Function Hour ( TimeValue As DateTime ) As Integer  Returns an Integer value from 0 through 23 representing the hour of the day.
7Public Shared Function Minute ( TimeValue As DateTime ) As Integer  Returns an Integer value from 0 through 59 representing the minute of the hour.
8Public Shared Function Month ( DateValue As DateTime ) As Integer  Returns an Integer value from 1 through 12 representing the month of the year.
9Public Shared Function MonthName ( Month As Integer, Abbreviate As Boolean ) As String  Returns a String value containing the name of the specified month.
10Public Shared Function Second ( TimeValue As DateTime ) As Integer  Returns an Integer value from 0 through 59 representing the second of the minute.
11Public Overridable Function ToString As String  Returns a string that represents the current object.
12Public Shared Function Weekday ( DateValue As DateTime, DayOfWeek As FirstDayOfWeek ) As Integer  Returns an Integer value containing a number representing the day of the week.
13Public Shared Function WeekdayName ( Weekday As Integer, Abbreviate As Boolean, FirstDayOfWeekValue As FirstDayOfWeek ) As String  Returns a String value containing the name of the specified weekday.
14Public Shared Function Year ( DateValue As DateTime ) As Integer  Returns an Integer value from 1 through 9999 representing the year.
The above list is not exhaustive. For complete list of properties and methods of the DateAndTime class, please consult Microsoft Documentation.
The following program demonstrates some of these and methods:
Module Module1
   Sub Main()
      Dim birthday As Date
      Dim bday As Integer
      Dim month As Integer
      Dim monthname As String
      ' Assign a date using standard short format.
      birthday = #7/27/1998#
      bday = Microsoft.VisualBasic.DateAndTime.Day(birthday)
      month = Microsoft.VisualBasic.DateAndTime.Month(birthday)
      monthname = Microsoft.VisualBasic.DateAndTime.MonthName(month)
      Console.WriteLine(birthday)
      Console.WriteLine(bday)
      Console.WriteLine(month)
      Console.WriteLine(monthname)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
7/27/1998 12:00:00 AM
27
7
July
An array stores a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type.
All arrays consist of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element.
Arrays in VB.Net

Creating Arrays in VB.Net

To declare an array in VB.Net, you use the Dim statement. For example,
Dim intData(30)	  ' an array of 31 elements
Dim strData(20) As String	' an array of 21 strings
Dim twoDarray(10, 20) As Integer	'a two dimensional array of integers
Dim ranges(10, 100)	 'a two dimensional array
You can also initialize the array elements while declaring the array. For example,
Dim intData() As Integer = {12, 16, 20, 24, 28, 32}
Dim names() As String = {"Karthik", "Sandhya", _
"Shivangi", "Ashwitha", "Somnath"}
Dim miscData() As Object = {"Hello World", 12d, 16ui, "A"c}
The elements in an array can be stored and accessed by using the index of the array. The following program demonstrates this:
Module arrayApl
   Sub Main()
      Dim n(10) As Integer  ' n is an array of 11 integers '
      Dim i, j As Integer
      ' initialize elements of array n '         
      For i = 0 To 10
          n(i) = i + 100 ' set element at location i to i + 100 
      Next i
      ' output each array element's value '
      For j = 0 To 10
          Console.WriteLine("Element({0}) = {1}", j, n(j))
      Next j
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Element(0) = 100
Element(1) = 101
Element(2) = 102
Element(3) = 103
Element(4) = 104
Element(5) = 105
Element(6) = 106
Element(7) = 107
Element(8) = 108
Element(9) = 109
Element(10) = 110

Dynamic Arrays

Dynamic arrays are arrays that can be dimensioned and re-dimensioned as par the need of the program. You can declare a dynamic array using the ReDim statement.
Syntax for ReDim statement:
ReDim [Preserve] arrayname(subscripts)
Where,
  • The Preserve keyword helps to preserve the data in an existing array, when you resize it.
  • arrayname is the name of the array to re-dimension
  • subscripts specifies the new dimension.
Module arrayApl
   Sub Main()
      Dim marks() As Integer
      ReDim marks(2)
      marks(0) = 85
      marks(1) = 75
      marks(2) = 90
      ReDim Preserve marks(10)
      marks(3) = 80
      marks(4) = 76
      marks(5) = 92
      marks(6) = 99
      marks(7) = 79
      marks(8) = 75
      For i = 0 To 10
          Console.WriteLine(i & vbTab & marks(i))
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
0	85
1	75
2	90
3	80
4	76
5	92
6	99
7	79
8	75
9	0
10	0

Multi-Dimensional Arrays

VB.Net allows multidimensional arrays. Multi-dimensional arrays are also called rectangular array.
You can declare a 2 dimensional array of strings as:
Dim twoDStringArray(10, 20) As String
or, a three dimensional array of Integer variables:
Dim threeDIntArray(10, 10, 10) As Integer
The following program demonstrates creating and using a two dimensional array:
Module arrayApl
   Sub Main()
      ' an array with 5 rows and 2 columns
      Dim a(,) As Integer = {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}}
      Dim i, j As Integer
      ' output each array element's value '
      For i = 0 To 4
          For j = 0 To 1
              Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i, j))
          Next j
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8

Jagged Array

A Jagged array is an array of arrays. The follwoing code shows declaring a jagged array named scores of Integers:
Dim scores As Integer()() = New Integer(5)(){}
The following example illustrates using a jagged array:
Module arrayApl
   Sub Main()
      'a jagged array of 5 array of integers
      Dim a As Integer()() = New Integer(4)() {}
      a(0) = New Integer() {0, 0}
      a(1) = New Integer() {1, 2}
      a(2) = New Integer() {2, 4}
      a(3) = New Integer() {3, 6}
      a(4) = New Integer() {4, 8}
      Dim i, j As Integer
      ' output each array element's value 
      For i = 0 To 4
          For j = 0 To 1
              Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i)(j))
          Next j
      Next i
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8

The Array Class

The Array class is the base class for all the arrays in VB.Net. It is defined in the System namespace. The Array class provides various properties and methods to work with arrays.

Properties of the Array Class

The following table provides some of the most commonly used properties of the Array class:
S.NProperty Name & Description
1IsFixedSize Gets a value indicating whether the Array has a fixed size.
2IsReadOnly Gets a value indicating whether the Array is read-only.
3Length Gets a 32-bit integer that represents the total number of elements in all the dimensions of the Array.
4LongLength Gets a 64-bit integer that represents the total number of elements in all the dimensions of the Array.
5Rank Gets the rank (number of dimensions) of the Array.

Methods of the Array Class

The following table provides some of the most commonly used methods of the Array class:
S.NMethod Name & Description
1Public Shared Sub Clear ( array As Array, index As Integer, length As Integer )  Sets a range of elements in the Array to zero, to false, or to null, depending on the element type.
2Public Shared Sub Copy ( sourceArray As Array, destinationArray As Array, length As Integer )  Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. The length is specified as a 32-bit integer.
3Public Sub CopyTo ( array As Array, index As Integer )  Copies all the elements of the current one-dimensional Array to the specified one-dimensional Array starting at the specified destination Array index. The index is specified as a 32-bit integer.
4Public Function GetLength ( dimension As Integer ) As Integer  Gets a 32-bit integer that represents the number of elements in the specified dimension of the Array.
5Public Function GetLongLength ( dimension As Integer ) As Long  Gets a 64-bit integer that represents the number of elements in the specified dimension of the Array.
6Public Function GetLowerBound ( dimension As Integer ) As Integer  Gets the lower bound of the specified dimension in the Array.
7Public Function GetType As Type Gets the Type of the current instance. (Inherited from Object.)
8Public Function GetUpperBound ( dimension As Integer ) As Integer  Gets the upper bound of the specified dimension in the Array.
9Public Function GetValue ( index As Integer ) As Object  Gets the value at the specified position in the one-dimensional Array. The index is specified as a 32-bit integer.
10Public Shared Function IndexOf ( array As Array, value As Object ) As Integer  Searches for the specified object and returns the index of the first occurrence within the entire one-dimensional Array.
11Public Shared Sub Reverse ( array As Array )  Reverses the sequence of the elements in the entire one-dimensional Array.
12Public Sub SetValue ( value As Object, index As Integer )  Sets a value to the element at the specified position in the one-dimensional Array. The index is specified as a 32-bit integer.
13Public Shared Sub Sort ( array As Array )  Sorts the elements in an entire one-dimensional Array using the IComparable implementation of each element of the Array.
14Public Overridable Function ToString As String eturns a string that represents the current object. (Inherited from Object.)
For complete list of Array class properties and methods, please consult Microsoft documentation.

Example

The following program demonstrates use of some of the methods of the Array class:
Module arrayApl
   Sub Main()
      Dim list As Integer() = {34, 72, 13, 44, 25, 30, 10}
      Dim temp As Integer() = list
      Dim i As Integer
      Console.Write("Original Array: ")
      For Each i In list
          Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      ' reverse the array
      Array.Reverse(temp)
      Console.Write("Reversed Array: ")
      For Each i In temp
          Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      'sort the array
      Array.Sort(list)
      Console.Write("Sorted Array: ")
      For Each i In list
          Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Original Array: 34 72 13 44 25 30 10
Reversed Array: 10 30 25 44 13 72 34
Sorted Array: 10 13 25 30 34 44 72
Collection classes are specialized classes for data storage and retrieval. These classes provide support for stacks, queues, lists, and hash tables. Most collection classes implement the same interfaces.
Collection classes serve various purposes, such as allocating memory dynamically to elements and accessing a list of items on the basis of an index etc. These classes create collections of objects of the Object class, which is the base class for all data types in C#.

Various Collection Classes and Their Usage

The following are the various commonly used classes of the System.Collection namespace. Click the following links to check their detail.
ClassDescription and Useage
ArrayList
It represents ordered collection of an object that can be indexed individually.
It is basically an alternative to an array. However unlike array you can add and remove items from a list at a specified position using an index and the array resizes itself automatically. It also allows dynamic memory allocation, add, search and sort items in the list.
Hashtable
It uses a key to access the elements in the collection.
A hash table is used when you need to access elements by using key, and you can identify a useful key value. Each item in the hash table has a key/value pair. The key is used to access the items in the collection.
SortedList
It uses a key as well as an index to access the items in a list.
A sorted list is a combination of an array and a hash table. It contains a list of items that can be accessed using a key or an index. If you access items using an index, it is an ArrayList, and if you access items using a key, it is a Hashtable. The collection of items is always sorted by the key value.
Stack
It represents a last-in, first out collection of object.
It is used when you need a last-in, first-out access of items. When you add an item in the list, it is called pushing the item and when you remove it, it is called popping the item.
QueueIt represents a first-in, first out collection of object.
It is used when you need a first-in, first-out access of items. When you add an item in the list, it is called enqueue and when you remove an item, it is called deque.
BitArray
It represents an array of the binary representation using the values 1 and 0.
It is used when you need to store the bits but do not know the number of bits in advance. You can access items from the BitArray collection by using an integer index, which starts from zero.
It represents an ordered collection of an object that can be indexed individually. It is basically an alternative to an array. However unlike array you can add and remove items from a list at a specified position using an index and the array resizes itself automatically. It also allow dynamic memory allocation, adding, searching and sorting items in the list.

Properties and Methods of the ArrayList Class

The following table lists some of the commonly used properties of the ArrayList class:
PropertyDescription
CapacityGets or sets the number of elements that the ArrayList can contain.
CountGets the number of elements actually contained in the ArrayList.
IsFixedSizeGets a value indicating whether the ArrayList has a fixed size.
IsReadOnlyGets a value indicating whether the ArrayList is read-only.
ItemGets or sets the element at the specified index.
The following table lists some of the commonly used methods of the ArrayList class:
S.NMethod Name & Purpose
1Public Overridable Function Add ( value As Object ) As Integer  Adds an object to the end of the ArrayList.
2Public Overridable Sub AddRange ( c As ICollection )  Adds the elements of an ICollection to the end of the ArrayList.
3Public Overridable Sub Clear Removes all elements from the ArrayList.
4Public Overridable Function Contains ( item As Object ) As Boolean  Determines whether an element is in the ArrayList.
5Public Overridable Function GetRange ( index As Integer, count As Integer ) As ArrayList  Returns an ArrayList which represents a subset of the elements in the source ArrayList.
6Public Overridable Function IndexOf ( value As Object ) As Integer  Returns the zero-based index of the first occurrence of a value in the ArrayList or in a portion of it.
7Public Overridable Sub Insert ( index As Integer, value As Object )  Inserts an element into the ArrayList at the specified index.
8Public Overridable Sub InsertRange ( index As Integer, c As ICollection )  Inserts the elements of a collection into the ArrayList at the specified index.
9Public Overridable Sub Remove ( obj As Object )  Removes the first occurrence of a specific object from the ArrayList.
10Public Overridable Sub RemoveAt ( index As Integer )  Removes the element at the specified index of the ArrayList.
11Public Overridable Sub RemoveRange ( index As Integer, count As Integer )  Removes a range of elements from the ArrayList.
12Public Overridable Sub Reverse Reverses the order of the elements in the ArrayList.
13Public Overridable Sub SetRange ( index As Integer, c As ICollection )  Copies the elements of a collection over a range of elements in the ArrayList.
14Public Overridable Sub Sort Sorts the elements in the ArrayList.
15Public Overridable Sub TrimToSize Sets the capacity to the actual number of elements in the ArrayList.

Example:

The following example demonstrates the concept:
   Sub Main()
      Dim al As ArrayList = New ArrayList()
      Dim i As Integer
      Console.WriteLine("Adding some numbers:")
      al.Add(45)
      al.Add(78)
      al.Add(33)
      al.Add(56)
      al.Add(12)
      al.Add(23)
      al.Add(9)
      Console.WriteLine("Capacity: {0} ", al.Capacity)
      Console.WriteLine("Count: {0}", al.Count)
      Console.Write("Content: ")
      For Each i In al
          Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      Console.Write("Sorted Content: ")
      al.Sort()
      For Each i In al
          Console.Write("{0} ", i)
      Next i
      Console.WriteLine()
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Adding some numbers:
Capacity: 8
Count: 7
Content: 45 78 33 56 12 23 9
Content: 9 12 23 33 45 56 78  
The Hashtable class represents a collection of key-and-value pairs that are organized based on the hash code of the key. It uses the key to access the elements in the collection.
A hash table is used when you need to access elements by using key, and you can identify a useful key value. Each item in the hash table has a key/value pair. The key is used to access the items in the collection.

Properties and Methods of the Hashtable Class

The following table lists some of the commonly used properties of the Hashtable class:
PropertyDescription
CountGets the number of key-and-value pairs contained in the Hashtable.
IsFixedSizeGets a value indicating whether the Hashtable has a fixed size.
IsReadOnlyGets a value indicating whether the Hashtable is read-only.
ItemGets or sets the value associated with the specified key.
KeysGets an ICollection containing the keys in the Hashtable.
ValuesGets an ICollection containing the values in the Hashtable.
The following table lists some of the commonly used methods of the Hashtable class:
S.NMethod Name & Purpose
1Public Overridable Sub Add ( key As Object, value As Object )  Adds an element with the specified key and value into the Hashtable.
2Public Overridable Sub Clear  Removes all elements from the Hashtable.
3Public Overridable Function ContainsKey ( key As Object ) As Boolean  Determines whether the Hashtable contains a specific key.
4Public Overridable Function ContainsValue ( value As Object ) As Boolean  Determines whether the Hashtable contains a specific value.
5Public Overridable Sub Remove ( key As Object )  Removes the element with the specified key from the Hashtable.

Example:

The following example demonstrates the concept:
Module collections
   Sub Main()
      Dim ht As Hashtable = New Hashtable()
      Dim k As String
      ht.Add("001", "Zara Ali")
      ht.Add("002", "Abida Rehman")
      ht.Add("003", "Joe Holzner")
      ht.Add("004", "Mausam Benazir Nur")
      ht.Add("005", "M. Amlan")
      ht.Add("006", "M. Arif")
      ht.Add("007", "Ritesh Saikia")
      If (ht.ContainsValue("Nuha Ali")) Then
          Console.WriteLine("This student name is already in the list")
      Else
          ht.Add("008", "Nuha Ali")
      End If
      ' Get a collection of the keys. 
      Dim key As ICollection = ht.Keys
      For Each k In key
          Console.WriteLine(" {0} : {1}", k, ht(k))
      Next k
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
006: M. Arif
007: Ritesh Saikia
008: Nuha Ali
003: Joe Holzner
002: Abida Rehman
004: Mausam Banazir Nur
001: Zara Ali
005: M. Amlan 
The SortedList class represents a collection of key-and-value pairs that are sorted by the keys and are accessible by key and by index.
A sorted list is a combination of an array and a hash table. It contains a list of items that can be accessed using a key or an index. If you access items using an index, it is an ArrayList, and if you access items using a key, it is a Hashtable. The collection of items is always sorted by the key value.

Properties and Methods of the SortedList Class

The following table lists some of the commonly used properties of the SortedList class:
PropertyDescription
CapacityGets or sets the capacity of the SortedList.
CountGets the number of elements contained in the SortedList.
IsFixedSizeGets a value indicating whether the SortedList has a fixed size.
IsReadOnlyGets a value indicating whether the SortedList is read-only.
ItemGets and sets the value associated with a specific key in the SortedList.
KeysGets the keys in the SortedList.
ValuesGets the values in the SortedList.
The following table lists some of the commonly used methods of the SortedList class:
S.NMethod Name & Purpose
1Public Overridable Sub Add ( key As Object, value As Object )  Adds an element with the specified key and value into the SortedList.
2Public Overridable Sub Clear  Removes all elements from the SortedList.
3Public Overridable Function ContainsKey ( key As Object ) As Boolean  Determines whether the SortedList contains a specific key.
4Public Overridable Function ContainsValue ( value As Object ) As Boolean  Determines whether the SortedList contains a specific value.
5Public Overridable Function GetByIndex ( index As Integer ) As Object  Gets the value at the specified index of the SortedList.
6Public Overridable Function GetKey ( index As Integer ) As Object  Gets the key at the specified index of the SortedList.
7Public Overridable Function GetKeyList As IList  Gets the keys in the SortedList.
8Public Overridable Function GetValueList As IList  Gets the values in the SortedList.
9Public Overridable Function IndexOfKey ( key As Object ) As Integer  Returns the zero-based index of the specified key in the SortedList.
10Public Overridable Function IndexOfValue ( value As Object ) As Integer  Returns the zero-based index of the first occurrence of the specified value in the SortedList.
11Public Overridable Sub Remove ( key As Object )  Removes the element with the specified key from the SortedList.
12Public Overridable Sub RemoveAt ( index As Integer )  Removes the element at the specified index of SortedList.
13Public Overridable Sub TrimToSize  Sets the capacity to the actual number of elements in the SortedList.

Example:

The following example demonstrates the concept:
Module collections
   Sub Main()
      Dim sl As SortedList = New SortedList()
      sl.Add("001", "Zara Ali")
      sl.Add("002", "Abida Rehman")
      sl.Add("003", "Joe Holzner")
      sl.Add("004", "Mausam Benazir Nur")
      sl.Add("005", "M. Amlan")
      sl.Add("006", "M. Arif")
      sl.Add("007", "Ritesh Saikia")
      If (sl.ContainsValue("Nuha Ali")) Then
          Console.WriteLine("This student name is already in the list")
      Else
          sl.Add("008", "Nuha Ali")
      End If
       ' Get a collection of the keys. 
      Dim key As ICollection = sl.Keys
      Dim k As String
      For Each k In key
          Console.WriteLine(" {0} : {1}", k, sl(k))
      Next k
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
001: Zara Ali
002: Abida Rehman
003: Joe Holzner
004: Mausam Banazir Nur
005: M. Amlan 
006: M. Arif
007: Ritesh Saikia
008: Nuha Ali
It represents a last-in, first out collection of object. It is used when you need a last-in, first-out access of items. When you add an item in the list, it is called pushing the item and when you remove it, it is called popping the item.

Properties and Methods of the Stack Class

The following table lists some of the commonly used properties of the Stack class:
PropertyDescription
CountGets the number of elements contained in the Stack.
The following table lists some of the commonly used methods of the Stack class:
S.NMethod Name & Purpose
1Public Overridable Sub Clear  Removes all elements from the Stack.
2Public Overridable Function Contains ( obj As Object ) As Boolean  Determines whether an element is in the Stack.
3Public Overridable Function Peek As Object Returns the object at the top of the Stack without removing it.
4Public Overridable Function Pop As Object Removes and returns the object at the top of the Stack.
5Public Overridable Sub Push ( obj As Object )  Inserts an object at the top of the Stack.
6Public Overridable Function ToArray As Object() Copies the Stack to a new array.

Example:

The following example demonstrates use of Stack:
Module collections
   Sub Main()
      Dim st As Stack = New Stack()
      st.Push("A")
      st.Push("M")
      st.Push("G")
      st.Push("W")
      Console.WriteLine("Current stack: ")
      Dim c As Char
      For Each c In st
          Console.Write(c + " ")
      Next c
      Console.WriteLine()
      st.Push("V")
      st.Push("H")
      Console.WriteLine("The next poppable value in stack: {0}", st.Peek())
      Console.WriteLine("Current stack: ")
      For Each c In st
          Console.Write(c + " ")
      Next c
      Console.WriteLine()
      Console.WriteLine("Removing values ")
      st.Pop()
      st.Pop()
      st.Pop()
      Console.WriteLine("Current stack: ")
      For Each c In st
          Console.Write(c + " ")
      Next c
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Current stack: 
W G M A
The next poppable value in stack: H
Current stack: 
H V W G M A
Removing values
Current stack: 
G M A
It represents a first-in, first out collection of object. It is used when you need a first-in, first-out access of items. When you add an item in the list, it is called enqueue, and when you remove an item, it is called deque

Properties and Methods of the Queue Class

The following table lists some of the commonly used properties of the Queue class:
PropertyDescription
CountGets the number of elements contained in the Queue.
The following table lists some of the commonly used methods of the Queue class:
S.NMethod Name & Purpose
1Public Overridable Sub Clear  Removes all elements from the Queue.
2Public Overridable Function Contains ( obj As Object ) As Boolean  Determines whether an element is in the Queue.
3Public Overridable Function Dequeue As Object Removes and returns the object at the beginning of the Queue.
4Public Overridable Sub Enqueue ( obj As Object )  Adds an object to the end of the Queue.
5Public Overridable Function ToArray As Object() Copies the Queue to a new array.
6Public Overridable Sub TrimToSize Sets the capacity to the actual number of elements in the Queue.

Example:

The following example demonstrates use of Queue:
Module collections
   Sub Main()
      Dim q As Queue = New Queue()
      q.Enqueue("A")
      q.Enqueue("M")
      q.Enqueue("G")
      q.Enqueue("W")
      Console.WriteLine("Current queue: ")
      Dim c As Char
      For Each c In q
          Console.Write(c + " ")
      Next c
      Console.WriteLine()
      q.Enqueue("V")
      q.Enqueue("H")
      Console.WriteLine("Current queue: ")
      For Each c In q
          Console.Write(c + " ")
      Next c
      Console.WriteLine()
      Console.WriteLine("Removing some values ")
      Dim ch As Char
      ch = q.Dequeue()
      Console.WriteLine("The removed value: {0}", ch)
      ch = q.Dequeue()
      Console.WriteLine("The removed value: {0}", ch)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Current queue: 
A M G W 
Current queue: 
A M G W V H 
Removing some values
The removed value: A
The removed value: M
The BitArray class manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).
It is used when you need to store the bits but do not know the number of bits in advance. You can access items from the BitArray collection by using an integer index, which starts from zero.

Properties and Methods of the BitArray Class

The following table lists some of the commonly used properties of the BitArray class:
PropertyDescription
CountGets the number of elements contained in the BitArray.
IsReadOnlyGets a value indicating whether the BitArray is read-only.
ItemGets or sets the value of the bit at a specific position in the BitArray.
LengthGets or sets the number of elements in the BitArray.
The following table lists some of the commonly used methods of the BitArray class:
S.NMethod Name & Purpose
1Public Function And ( value As BitArray ) As BitArray  Performs the bitwise AND operation on the elements in the current BitArray against the corresponding elements in the specified BitArray.
2Public Function Get ( index As Integer ) As Boolean  Gets the value of the bit at a specific position in the BitArray.
3Public Function Not As BitArray Inverts all the bit values in the current BitArray, so that elements set to true are changed to false, and elements set to false are changed to true.
4Public Function Or ( value As BitArray ) As BitArray  Performs the bitwise OR operation on the elements in the current BitArray against the corresponding elements in the specified BitArray.
5Public Sub Set ( index As Integer, value As Boolean )  Sets the bit at a specific position in the BitArray to the specified value.
6Public Sub SetAll ( value As Boolean )  Sets all bits in the BitArray to the specified value.
7Public Function Xor ( value As BitArray ) As BitArray  Performs the bitwise eXclusive OR operation on the elements in the current BitArray against the corresponding elements in the specified BitArray.

Example:

The following example demonstrates the use of BitArray class:
Module collections
   Sub Main()
      'creating two  bit arrays of size 8
      Dim ba1 As BitArray = New BitArray(8)
      Dim ba2 As BitArray = New BitArray(8)
      Dim a() As Byte = {60}
      Dim b() As Byte = {13}
      'storing the values 60, and 13 into the bit arrays
      ba1 = New BitArray(a)
      ba2 = New BitArray(b)
      'content of ba1
      Console.WriteLine("Bit array ba1: 60")
      Dim i As Integer
      For i = 0 To ba1.Count
          Console.Write("{0 } ", ba1(i))
      Next i
      Console.WriteLine()
      'content of ba2
      Console.WriteLine("Bit array ba2: 13")
      For i = 0 To ba2.Count
          Console.Write("{0 } ", ba2(i))
      Next i
      Console.WriteLine()
      Dim ba3 As BitArray = New BitArray(8)
      ba3 = ba1.And(ba2)
      'content of ba3
      Console.WriteLine("Bit array ba3 after AND operation: 12")
      For i = 0 To ba3.Count
          Console.Write("{0 } ", ba3(i))
      Next i
      Console.WriteLine()
      ba3 = ba1.Or(ba2)
      'content of ba3
      Console.WriteLine("Bit array ba3 after OR operation: 61")
      For i = 0 To ba3.Count
          Console.Write("{0 } ", ba3(i))
      Next i
      Console.WriteLine()
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces following result:
Bit array ba1: 60 
False False True True True True False False 
Bit array ba2: 13
True False True True False False False False 
Bit array ba3 after AND operation: 12
False False True True False False False False 
Bit array ba3 after OR operation: 61
True False True True False False False False 









No comments:

Post a Comment