Syed Usman Rafi 2421-116-057 7 Bscs (Visual Basic) : Name
Syed Usman Rafi 2421-116-057 7 Bscs (Visual Basic) : Name
SEMESTER:7th BSCS
ASSIGNMENT:VB.Net
(Visual Basic)
Visual Basic.net (VB.NET)
There is no unified way of defining blocks of statements. Instead, certain keywords, such
as "If … Then" or "Sub" are interpreted as starters of sub-blocks of code and have
matching termination keywords such as "End If" or "End Sub".
Statements are terminated either with a colon (":") or with the end of line. Multiple line
statements in Visual Basic .NET are enabled with " _" at the end of each such line. The
need for the underscore continuation character was largely removed in version 10 and
later versions.[2]
The equals sign ("=") is used in both assigning values to variable and in comparison.
Round brackets (parentheses) are used with arrays, both to declare them and to get a
value at a given index in one of them. Visual Basic .NET uses round brackets to define the
parameters of subroutines or functions.
A single quotation mark ('), placed at the beginning of a line or after any number of space
or tab characters at the beginning of a line, or after other code on a line, indicates that the
(remainder of the) line is a comment.
Simple example
The following is a very simple VB.NET program, a version of the classic "Hello world"
example created as a console application:
ModuleModule1
SubMain()
' The classic "Hello World" demonstration program
Console.WriteLine("Hello World!")
EndSub
EndModule
It prints "Hello world!" on a command-line window. Each line serves a specific purpose,
as follows:
ModuleModule1
This is a module definition, a division of code similar to a class, although modules can
contain classes. Modules serve as containers of code that can be referenced from other
parts of a program.[3]
It is common practice for a module and the code file, which contains it, to have the same
name; however, this is not required, as a single code file may contain more than one
module and/or class definition.
SubMain()
It defines a subroutine called "Main". "Main" is the entry point, where the program
begins execution.[4]
Console.WriteLine("Hello world!")
This line performs the actual task of writing the output. Console is a system object,
representing a command-line interface (also known as "console") and granting
programmatic access to the operating system's standard streams. The program calls the
Console method WriteLine, which causes the string passed to it to be displayed on the
console.
Instead of Console.WriteLine, one could use MsgBox, which prints the message in a
dialog box instead of a command-line window.[5]
Complex example
ImportsSystem.Console
ModuleProgram
SubMain()
DimrowsAsInteger
'Input validation.
Loop
Forrow=1Torows
Forcolumn=1Torow
Write("{0,-2} ",current)
current+=1
Next
WriteLine()
Next
EndSub
''' <summary>
''' Shadows Console.ReadLine with a version which takes a prompt string.
''' </summary>
FunctionReadLine(OptionalpromptAsString=Nothing)AsString
IfpromptIsNotNothingThen
Write(prompt)
EndIf
ReturnConsole.ReadLine()
EndFunction
EndModule
Comparison with the classic Visual Basic
Main article: Comparison of Visual Basic and Visual Basic .NET
Whether Visual Basic .NET should be considered as just another version of Visual Basic
or a completely different language is a topic of debate. There are new additions to
support new features, such as structured exception handling and short-circuited
expressions. Also, two important data-type changes occurred with the move to VB.NET:
compared to Visual Basic 6, the Integerdata type has been doubled in length from 16
bits to 32 bits, and the Longdata type has been doubled in length from 32 bits to 64 bits.
This is true for all versions of VB.NET. A 16-bit integer in all versions of VB.NET is
now known as a Short. Similarly, the Windows Forms editor is very similar in style and
function to the Visual Basic form editor.
The things that have changed significantly are the semantics—from those of an object-
based programming language running on a deterministic, reference-counted engine
based on COM to a fully object-oriented language backed by the .NET Framework,
which consists of a combination of the Common Language Runtime (a virtual
machineusing generational garbage collection and a just-in-time compilation engine)
and a far larger class library. The increased breadth of the latter is also a problem that
VB developers have to deal with when coming to the language, although this is
somewhat addressed by the My feature in Visual Studio 2005.
The changes have altered many underlying assumptions about the "right" thing to do
with respect to performance and maintainability. Some functions and libraries no
longer exist; others are available, but not as efficient as the "native" .NET alternatives.
Even if they compile, most converted Visual Basic 6 applications will require some level
of refactoring to take full advantage of the new language. Documentation is available to
cover changes in the syntax, debugging applications, deployment and terminology.[6]
Comparative examples
The following simple examples compare VB and VB.NET syntax. They assume that the
developer has created a form, placed a button on it and has associated the subroutines
demonstrated in each example with the click event handler of the mentioned button.
Each example creates a "Hello, World" message box after the button on the form is
clicked.
Visual Basic 6:
PrivateSubCommand1_Click()
MsgBox"Hello, World"
EndSub
PrivateSubButton1_Click(senderAsobject,eAsEventArgs)HandlesButton1.Click
Msgbox("Hello, World")
EndSub
Both Visual Basic 6 and Visual Basic .NET automatically generate the Sub and End Sub
statements when the corresponding button is double-clicked in design view. Visual Basic
.NET will also generate the necessary Class and End Class statements. The developer
need only add the statement to display the "Hello, World" message box.
All procedure calls must be made with parentheses in VB.NET, whereas in Visual Basic 6
there were different conventions for functions (parentheses required) and subs (no
parentheses allowed, unless called using the keyword Call).
The names Command1 and Button1 are not obligatory. However, these are default names
for a command button in Visual Basic 6 and VB.NET respectively.
In VB.NET, the Handles keyword is used to make the sub Button1_Click a handler for
the Click event of the object Button1. In Visual Basic 6, event handler subs must have a
specific name consisting of the object's name ("Command1"), an underscore ("_"), and the
event's name ("Click", hence "Command1_Click").
There is a function called MessageBox.Show in the Microsoft.VisualBasic
namespace which can be used (instead of MsgBox) similarly to the corresponding function
in Visual Basic 6. There is a controversy[7] about which function to use as a best practice
(not only restricted to showing message boxes but also regarding other features of the
Microsoft.VisualBasic namespace). Some programmers prefer to do things "the .NET
way", since the Framework classes have more features and are less language-specific.
Others argue that using language-specific features makes code more readable (for
example, using int (C#) or Integer (VB.NET) instead of System.Int32).
In Visual Basic 2008, the inclusion of ByVal sender as Object, ByVal e as
EventArgs has become optional.
The following example demonstrates a difference between Visual Basic 6 and VB.NET.
Both examples close the active window.
Visual Basic 6:
SubcmdClose_Click()
UnloadMe
EndSub
VB.NET:
SubbtnClose_Click(senderAsObject,eAsEventArgs)HandlesbtnClose.Click
Close()
EndSub
The 'cmd' prefix is replaced by the 'btn' prefix, conforming to the new convention
previously mentioned.[which?]
Visual Basic 6 did not provide common operator shortcuts. The following are
equivalent:
Visual Basic 6:
SubTimer1_Timer()
'Reduces Form Height by one pixel per tick
Me.Height=Me.Height-1
EndSub
VB.NET:
SubTimer1_Tick(senderAsObject,eAsEventArgs)HandlesTimer1.Tick
Me.Height-=1
EndSub