C# and VB.Net
By
Sam Nasr
October 26, 2004
What is C#?
What is VB.Net?
Myths
Language Differences
The differences of the 2 languages lie
in:
1.
2.
3.
Syntax
Object Oriented Features
Visual Studio.Net IDE
Syntax Differences
Case Sensitivity
Line Termination
Comments
Namespace Declaration and
Usage
Variable Declaration
Variable Initialization
Declaring Function Parameters
Passing Function Parameters
Optional Parameters
Parameter Lists
Method Declaration
Returning Output Parameters
Program Startup
Exiting
Programs/Methods/Loops
Member Scope
Static/Shared Methods
Classes versus Modules
If statements
Short Circuiting
Conditional Statements
Properties and Indexers
Arrays
For Loops
For/Each Loops
Try/Catch Blocks
Attribute Usage
Control Characters
Type Comparison and
Conversion
C# Example
(Syntax)
/* C Style comment */
// C++ Style comment
///Enhanced comment for Documentation Feature
Void SampleProc()
{
int intCounter1=0;
MessageBox.show(Counter1= +
intCounter1.ToString());
} //end of SampleProc
VB.Net Example
(Syntax)
Style of comments for VB.Net
Sub SampleProc()
Dim intCounter1 as Integer, intCounter2 as
Integer
MessageBox.show(Counter1= & intCounter1)
End Sub end of SampleProc
Object-Oriented Features
Inheritance Syntax
Method Overloading
Constructors
Invoking Other
Constructors
Invoking Base
Constructors
Initializers
Hiding Base Class
Members
Overriding methods
Requiring/Preventing
Inheritance
Declaring and
Implementing
Interfaces
Delegated and Events
Comparing Classes
String Comparisons
C# Example
(Object Oriented)
class App
{
static void Main(string [ ] args)
{
int intCounter=0;
foreach (string arg in args)
{
System.Console.WriteLine(Counter: + intCounter.ToString()
+ = + arg);
} //end of foreach
} //end of Main()
} //end of App{}
VB.Net Example
(Object Oriented)
Class App
Shared Sub Main(ByVal args as String( ) )
Dim arg as String
Dim intCounter as Integer
For Each arg in args
System.Console.Writeline(Counter: & intCounter &
= & arg)
IDE Differences
AssemblyInfo.x
Default/Root
Namespace
Startup object
App.ico
Imports/Using
COM References
Compiler Constants
Options:
(Explicit, Strict,
Compare)
Errors and Warnings
Specific Language
Features
Using (C#)
void OpenDatabase()
{
string cstr;
cstr = "Provider=Microsoft.Jet.OLEDB.4.0";
cstr += "Data Source=c:\\MyDB.mdb;";
using (OleDBConnection conn = new OleDBConnection(Cstr))
{
conn.open();
}
}
Documentation
Comments (C#)
///<summary>
///A Sample Function to demonstrate C#
///</summary>
///<param name=void>This function does not receive a
parameter. </param>
///<returns>Void Type</returns>
Void SampleProc()
{
int intCounter1, intCounter2;
MessageBox.show(Counter1= & intCounter1);
} //end of SampleProc
Controversial Issues
Point
C# offers less typing.
C# is a better programming language
because it forces variables to be defined.
C# code runs faster.
Counter-Point
VB.Net offers automatic case setting
VB.Net offers Option Explicit
Speed is debatable!
Which Language do I
choose for my organization?
Language Converters
C# to VB.NET
http://www.aspalliance.com/aldotnet/examples/trans
late.aspx
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
VB.Net to C#
http://www.e-iceblue.com
http://www.vbconversions.com
Additional Information
C# in a Nutshell ByPeterDrayton,
BenAlbahari, TedNeward
http://en.wikipedia.org/wiki/Visual_B
asic_programming_language
Upcoming Events
Career Info