| VB.NET | C# | 
  
    | Comments | 
  
    |  |  | 
  
    | Data 
  Types | 
  
    | Boolean
 Byte
 Char
 Short, Integer, Long
 Single, 
      Double
 Decimal
 Date
 Object
 String
 
 Dim x As Integer 
      Console.WriteLine(x.GetType())
 Console.WriteLine(TypeName(x))
 Dim d As Single = 
      3.5
 Dim i As Integer = CType(d, Integer)
 i = 
      CInt(d)
 i = Int(d)
 | bool
 byte, 
      sbyte
 char
 short, ushort, int, uint, long, 
      ulong
 float, double
 decimal
 DateTime
 object
 string
 
 int x;Console.WriteLine(x.GetType());
 Console.WriteLine(typeof(int));
  float d = 3.5f;
 int i = (int) d;
 | 
  
    | Constants | 
  
    | Const MAX_STUDENTS As 
      Integer = 25 | const int MAX_STUDENTS = 25; | 
  
    | Enumerations | 
  
    | Enum Action Start
 [Stop]
 Rewind
 Forward
 End 
      Enum
 
 Enum Status
 Flunk = 
      50
 Pass = 70
 Excel = 90
 End 
      Enum
 
 Dim a As Action = Action.Stop
 If a <> 
      Action.Start Then _
 Console.WriteLine(a.ToString & " 
      is " & a)
 
 Console.WriteLine(Status.Pass)
 Console.WriteLine(Status.Pass.ToString())
 | enum Action {Start, Stop, Rewind, 
      Forward}; enum Status {Flunk = 50, Pass = 70, Excel = 
      90};
 
 Action a = Action.Stop;
 if (a != Action.Start)
 Console.WriteLine(a + " is " + (int) a);
 
 Console.WriteLine((int) 
      Status.Pass);
 Console.WriteLine(Status.Pass);
 | 
  
    | Operators | 
  
    | =  <  >  
      <=  >=  <>
 +  -  *  
      /
 Mod
 \
 ^
 =  +=  -=  
      *=  /=  \=  ^=  <<=  >>=  
      &=
 And  AndAlso  
      Or  OrElse  Not  <<  >>
 And  AndAlso  
      Or  OrElse  Not
 Note: AndAlso and OrElse are for 
      short-circuiting logical evaluations &
 | ==  <  >  
      <=  >=  !=
 +  -  *  
      /
 %
 /
 Math.Pow(x, y)
 =  +=  -= 
       *=  /=   %=  &=  |=  ^=  
      <<=  >>=  ++  --
 &  | 
       ^   ~  <<  >>
 &&  ||   
      !
 Note: && and || perform 
      short-circuit logical evaluations +
 | 
  
    | Choices | 
  
    | greeting = IIf(age < 20, "What's up?", "Hello") If language = "VB.NET" 
      Then langType = "verbose"
 If x <> 100 And y < 5 
      Then x *= 5 : y *= 2
 If x 
      <> 100 And y < 5 Then
 x *= 5
 y *= 2
 End If
 If whenYouHaveAReally < longLine 
      And itNeedsToBeBrokenInto2 > Lines Then 
      _
 UseTheUnderscore(charToBreakItUp)
 If x > 5 
      Then x *= y
 ElseIf x 
      = 5 Then
 x += y
 ElseIf x 
      < 10 Then
 x -= y
 Else
 x /= y
 End If
 Select Case color   Case 
      "pink", "red"
 r += 1
 Case "blue"
 b += 1
 Case "green"
 g += 1
 Case Else
 other += 1
 End Select
 | greeting = age < 20 ? "What's up?" 
      : "Hello"; 
 
 
 
 if (x != 100 && y < 5) {    
      x *= 5;
 y *= 2;
 }
 
 
 
 
 
 if (x > 5)
 x *= 
      y;
 else if (x == 5)
 x += y;
 else if (x < 10)
 x -= y;
 else
 x /= y;
 
 
 switch 
      (color) {                          
      // Must be integer or string
 case "pink":
 case 
      "red":    r++;    break; 
             // break is 
      mandatory; no fall-through
 case 
      "blue":   b++;   break;
 case "green": g++;   
      break;
 default:    other++;   
      break;       // 
      break necessary on default
 }
 | 
  
    | Loops | 
  
    | 
        
        
          |  |  
          | While c < 10 c += 1
 End While
 | Do Until c = 10 c += 1
 Loop
 |  
          | Do While c < 10 c += 1
 Loop
 | For c = 2 To 10 
            Step 2 Console.WriteLine(c)
 Next
 |  
          |  |  
          | Do c += 1
 Loop 
            While c < 10
 | Do c += 1
 Loop 
            Until c = 10
 |  Dim 
      names As String() = {"Fred", "Sue", "Barney"}
 For 
      Each s As String In names
 Console.WriteLine(s)
 Next
 | while (i < 10)
 i++;
 
 for (i = 2; i < = 10; i += 2)
 Console.WriteLine(i);
 
 
 
 do
 i++;
 while (i < 10);
 
 
 
 
 string[] names = 
      {"Fred", "Sue", "Barney"};
 foreach (string s 
      in names)
 Console.WriteLine(s);
 | 
  
    | Arrays | 
  
    | Dim nums() As Integer = {1, 2, 3} For i As 
      Integer = 0 To nums.Length - 1
 Console.WriteLine(nums(i))
 Next
 
 
 Dim names(4) As String
 names(0) = "David"
 names(5) = "Bobby"
 
 
 ReDim Preserve names(6)
 
 
 Dim twoD(rows-1, cols-1) As Single
 twoD(2, 0) = 
      4.5
 
 Dim jagged()() As Integer = { _
 New 
      Integer(4) {}, New Integer(1) {}, New Integer(2) {} }
 jagged(0)(4) = 5
 | int[] nums = {1, 2, 3};for (int i = 0; i < 
      nums.Length; i++)
 Console.WriteLine(nums[i]);
 
 
 
 string[] names = new 
      string[5];
 names[0] = "David";
 names[5] = "Bobby";
 
 
 
 string[] names2 = new 
      string[7];
 Array.Copy(names, names2, names.Length);
 float[,] twoD = new float[rows, cols];twoD[2,0] = 
      4.5f;
 int[][] jagged = new int[3][] { new int[5], 
      new int[2], new int[3] };
 jagged[0][4] = 5;
 | 
  
    | Functions | 
  
    |   Sub 
      TestFunc(ByVal x As Integer, ByRef y As 
      Integer, ByRef z As Integer)
 x += 1
 y 
      += 1
 z = 5
 End Sub
 Dim a = 1, b = 1, c As Integer     TestFunc(a, b, c)
 Console.WriteLine("{0} {1} {2}", a, b, c)
  
      Function Sum(ByVal ParamArray nums 
      As Integer()) As Integer
 Sum = 0
 For 
      Each i As Integer In nums
 Sum += i
 Next
 End Function
 
 Dim total As Integer = Sum(4, 3, 2, 
      1)
  Sub 
      SayHello(ByVal name As String, Optional ByVal prefix As 
      String = "")
 Console.WriteLine("Greetings, " & prefix 
      & " " & name)
 End Sub
 
 SayHello("Strangelove", 
      "Dr.")
 SayHello("Madonna")
 
 | void 
      TestFunc(int x, ref int y, out int z) 
      {
 x++;
 y++;
 z = 5;
 }
 int a = 1, b = 1, c;  // c doesn't need 
      initializingTestFunc(a, ref b, 
      out c);
 Console.WriteLine("{0} {1} {2}", a, b, 
      c);
 int Sum(params int[] nums) 
      {
 int sum = 0;
 foreach (int i in 
      nums)
 sum += i;
 return sum;
 }
 int total = Sum(4, 3, 2, 1);   // 
      returns 10   void SayHello(string name, string prefix) 
      {
 Console.WriteLine("Greetings, " + prefix + " " + 
      name);
 }
 
 void SayHello(string name) {
 SayHello(name, "");
 }
 | 
  
    | Exception Handling | 
  
    | On Error GoTo 
      MyErrorHandler
 ...
 MyErrorHandler: 
      Console.WriteLine(Err.Description)
 
 Dim ex As New 
      Exception("Something is really wrong.")
 Throw 
       ex
 Try y = 0
 x = 10 / 
      y
 Catch ex As Exception When y = 
      0
 Console.WriteLine(ex.Message)
 Finally
 Beep()
 End Try
 
 | 
 
 
 Exception up = new Exception("Something is really 
      wrong.");
 throw up;
 try { y = 0;
 x = 10 / y;
 }
 catch (Exception ex) {
 Console.WriteLine(ex.Message);
 }
 finally {
 
 }
 | 
  
    | Namespaces | 
  
    | Namespace Harding.Compsci.Graphics ...
 End Namespace
 Namespace Harding Namespace Compsci
 Namespace 
      Graphics
 ...
 End Namespace
 End Namespace
 End 
      Namespace
 Imports Harding.Compsci.Graphics  | namespace Harding.Compsci.Graphics {...
 }
   namespace Harding {namespace Compsci {
 namespace Graphics {
 ...
 }
 }
 }
 using Harding.Compsci.Graphics;  | 
  
    | Classes / Interfaces | 
  
    |  
      Public
 Private
 Friend
 Protected
 Protected Friend
 Shared
 Class FootballGame
 Inherits Competition
 ...
 End 
      Class
 Interface 
      IAlarmClock
 ...
 End Interface
 Interface IAlarmClock
 Inherits IClock
 ...
 End 
      Interface
 Class WristWatch
 Implements IAlarmClock, ITimer
 ...
 End Class
 |  
      public
 private
 internal
 protected
 protected 
      internal
 static
 class FootballGame 
      : Competition {
 ...
 }
 interface IAlarmClock {
 ...
 }
 interface IAlarmClock 
      : IClock {
 ...
 }
 class WristWatch 
      : IAlarmClock, ITimer {
 ...
 }
 | 
  
    | Constructors / Destructors | 
  
    | Class SuperHero Private _powerLevel As Integer
 
 Public Sub 
      New()
 _powerLevel = 0
 End Sub
 
 Public Sub New(ByVal powerLevel As 
      Integer)
 Me._powerLevel = powerLevel
 End 
      Sub
 
 Protected Overrides Sub 
      Finalize()
 
 MyBase.Finalize()
 End Sub
 End 
      Class
 | class SuperHero {private int 
      _powerLevel;
 
 public SuperHero() 
      {
 _powerLevel = 0;
 }
 
 public SuperHero(int powerLevel) {
 this._powerLevel= powerLevel;
 }
 
 ~SuperHero() {
 
 }
 }
 | 
  
    | Objects | 
  
    | Dim hero As SuperHero = New SuperHero With hero
 .Name = "SpamMan"
 .PowerLevel = 3
 End 
      With
 
 hero.Defend("Laura Jones")
 hero.Rest()
 
 SuperHero.Rest()
 Dim hero2 As SuperHero = hero   hero2.Name = "WormWoman"
 Console.WriteLine(hero.Name)
 hero = Nothing      If hero Is Nothing Then _ hero = New SuperHero
 Dim obj As Object = New SuperHero If TypeOf obj 
      Is SuperHero Then _
 Console.WriteLine("Is a 
      SuperHero object.")
 | SuperHero hero = new SuperHero(); 
 
 hero.Name = "SpamMan";
 hero.PowerLevel = 3;
 hero.Defend("Laura Jones");SuperHero.Rest();
 
 SuperHero hero2 = hero;
 hero2.Name = "WormWoman";
 Console.WriteLine(hero.Name);
 hero = null ;     if (hero == null)hero = new 
SuperHero();
 Object obj = new SuperHero(); if (obj is 
      SuperHero)
 Console.WriteLine("Is a SuperHero 
  object.");
 | 
  
    | Structs | 
  
    | Structure StudentRecord Public name As 
      String
 Public gpa As Single
 
 Public Sub New(ByVal 
      name As String, ByVal gpa As Single)
 Me.name = name
 Me.gpa = gpa
 End Sub
 End 
      Structure
 Dim stu As StudentRecord = New StudentRecord("Bob", 3.5) Dim stu2 
      As StudentRecord = stu
 
 stu2.name = "Sue"
 Console.WriteLine(stu.name)
 Console.WriteLine(stu2.name)
 | struct StudentRecord { public 
      string name;
 public float gpa;
 
 public 
      StudentRecord(string name, float gpa) {
 this.name = 
      name;
 this.gpa = gpa;
 }
 }
 
 StudentRecord stu = new StudentRecord("Bob", 3.5f);StudentRecord 
      stu2 = stu;
 
 stu2.name = 
      "Sue";
 Console.WriteLine(stu.name);
 Console.WriteLine(stu2.name);
 | 
  
    | Properties | 
  
    | Private _size As Integer
 Public Property Size() 
      As Integer
 Get
 Return 
      _size
 End Get
 Set 
      (ByVal Value As Integer)
 If Value < 0 Then
 _size = 0
 Else
 _size = Value
 End If
 End Set
 End 
      Property
 foo.Size += 1 | private int _size; 
 public int Size {
 get {
 return _size;
 }
 set {
 if (value 
      < 0)
 _size = 0;
 else
 _size = value;
 }
 }
 foo.Size++;
 | 
  
    | Delegates / Events | 
  
    | Delegate Sub MsgArrivedEventHandler(ByVal message As 
      String) Event MsgArrivedEvent As MsgArrivedEventHandler Event MsgArrivedEvent(ByVal message 
      As String)
 AddHandler MsgArrivedEvent, AddressOf 
      My_MsgArrivedCallback RaiseEvent 
      MsgArrivedEvent("Test message")
 RemoveHandler 
      MsgArrivedEvent, AddressOf My_MsgArrivedCallback
 
 Imports System.Windows.Forms Dim WithEvents MyButton As Button   MyButton = New Button
 Private Sub MyButton_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles MyButton.Click
 MessageBox.Show(Me, "Button was clicked", "Info", 
      _
 MessageBoxButtons.OK, MessageBoxIcon.Information)
 End Sub
 | delegate void MsgArrivedEventHandler(string message); 
       event MsgArrivedEventHandler MsgArrivedEvent; 
 
 MsgArrivedEvent += new 
      MsgArrivedEventHandler(My_MsgArrivedEventCallback);
 MsgArrivedEvent("Test 
      message");
 MsgArrivedEvent -= new 
      MsgArrivedEventHandler(My_MsgArrivedEventCallback);
 
 using System.Windows.Forms;
 Button MyButton = new Button(); MyButton.Click += new 
      System.EventHandler(MyButton_Click);
 private void MyButton_Click(object sender, System.EventArgs e) { 
      MessageBox.Show(this, "Button was clicked", "Info",
 MessageBoxButtons.OK, MessageBoxIcon.Information);
 }
 | 
  
    | Console 
  I/O | 
  
    | vbCrLf, vbCr, 
      vbLf, vbNewLine
 vbNullString
 vbTab
 vbBack
 vbFormFeed
 vbVerticalTab
 ""
 Chr(65)
 Console.Write("What's your name? ") Dim name As String = 
      Console.ReadLine()
 Console.Write("How old are you? ")
 Dim age As 
      Integer = Val(Console.ReadLine())
 Console.WriteLine("{0} is {1} years 
      old.", name, age)
 
 Console.WriteLine(name & " is " & age & " years old.")
 
 Dim c As Integer
 c = Console.Read()
 Console.WriteLine(c)
 | \n, 
      \r
 \t
 \\
 \"
 Convert.ToChar(65)  (char) 65
 Console.Write("What's your name? ");string name = 
      Console.ReadLine();
 Console.Write("How old are you? ");
 int age = 
      Convert.ToInt32(Console.ReadLine());
 Console.WriteLine("{0} is {1} 
      years old.", name, age);
 
 Console.WriteLine(name + " is " + age + " years old.");
 int c = Console.Read();
 Console.WriteLine(c);
 | 
  
    | File I/O | 
  
    | Imports System.IO Dim writer As 
      StreamWriter = File.CreateText("c:\myfile.txt")
 writer.WriteLine("Out to file.")
 writer.Close()
 Dim 
      reader As StreamReader = File.OpenText("c:\myfile.txt")
 Dim line As String = reader.ReadLine()
 While Not line Is Nothing
 Console.WriteLine(line)
 line = reader.ReadLine()
 End While
 reader.Close()
 Dim str As 
      String = "Text data"
 Dim num As Integer = 123
 Dim binWriter As New 
      BinaryWriter(File.OpenWrite("c:\myfile.dat"))
 binWriter.Write(str)
 binWriter.Write(num)
 binWriter.Close()
 Dim binReader As 
      New BinaryReader(File.OpenRead("c:\myfile.dat"))
 str 
      = binReader.ReadString()
 num = binReader.ReadInt32()
 binReader.Close()
 | using System.IO; StreamWriter writer = 
      File.CreateText("c:\\myfile.txt");
 writer.WriteLine("Out to file.");
 writer.Close();
 StreamReader reader = 
      File.OpenText("c:\\myfile.txt");
 string line = reader.ReadLine();
 while (line != null) {
 Console.WriteLine(line);
 line = reader.ReadLine();
 }
 reader.Close();
 string str = 
      "Text data";
 int num = 123;
 BinaryWriter 
      binWriter = new BinaryWriter(File.OpenWrite("c:\\myfile.dat"));
 binWriter.Write(str);
 binWriter.Write(num);
 binWriter.Close();
 BinaryReader binReader = new 
      BinaryReader(File.OpenRead("c:\\myfile.dat"));
 str = 
      binReader.ReadString();
 num = binReader.ReadInt32();
 binReader.Close();
 |