VB/C#: trova le differenze

Supponiamo di creare un semplicissimo programma per la Console, il classico “Hello World”, sia in Visual Basic, sia in C#. Ovviamente è un codice semplice e banale:

‘ === VISUAL BASIC ===
Module Module1
   Sub Main()
      Console.WriteLine(“Hello World”)
      Console.ReadLine()
   End Sub
End Module

// === C# ===
using System;

namespace ConsoleApplication2
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine(“Hello World”);
         Console.ReadLine();
      }
   }
}

Entrambi fanno la stessa cosa: visualizzano la scritta Hello World nella Console (equivalente al prompt dei comandi), ma con una sintassi piuttosto differente.

Vediamo però cosa succede a livello più basso, quando compiliamo in codice MSIL:

ESEMPIO VISUAL BASIC

.method public static void Main() cil managed
{
   .entrypoint
   .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01
00 00 00 )
   // Code size 17 (0x11)
   .maxstack 8
   IL_0000: ldstr “Hello World”
   IL_0005: call void [mscorlib]System.Console::WriteLine(string)
   IL_000a: call string [mscorlib]System.Console::ReadLine()
   IL_000f: pop
   IL_0010: ret
} // end of method Module1::Main

 

ESEMPIO C#

.method private hidebysig static void Main(string[] args) cil managed
{
   .entrypoint
   // Code size 17 (0x11)
   .maxstack 8
   IL_0000: ldstr “Hello World”
   IL_0005: call void [mscorlib]System.Console::WriteLine(string)
   IL_000a: call string [mscorlib]System.Console::ReadLine()
   IL_000f: pop
   IL_0010: ret
} // end of method Program::Main

 

Non c’è questa grande differenza, vero? Il codice a basso livello è sostanzialmente lo stesso, perché deve poi tradursi in qualcosa di interpretabile dal “run-time” del .NET Framework.

 

NOTA 1: esempi tratti dal mio libro “Visual Basic 2010 spiegato a mia nonna”, edito da Edizioni FAG.

NOTA 2: a breve inizierò la redazione di un nuovo libro su Visual Basic 2017…

Smile

Pubblicato il 26 novembre 2016 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: