Hello, World! | ||
Differenze tra Value e Reference Type |
Con questo esempio inizia la carriera di ogni programmatore, qualunque linguaggio egli decida di dedicarsi. Lo scopo del programma è fare scrivere sullo schermo della console la scritta "Hello World!" e servirà per valutare come C#, VB.Net e C++ accedono al framework. I Namespace forniscono un sistema di organizzazione logica sia interna che esterna degli elementi dei programmi, e in questo caso particolare gli elementi per l'accesso alle funzioni di base, come l'output su console sono incorporati nel namespace System, contenuto nell'assembly mscorlib.dll (Microsoft Core Library). Questo assembly viene caricato automaticamente da C# e da VB.NET, ma non da C++ come vedremo negli esempi: C# // Permette riferimenti semplificati al namespace System using System; // Questa "classe" esiste solo per ospitare la funzione entry point dell'applicazione class MainApp { // Il metodo statico Main è l'entry point dell'applicazione public static void Main() { // Scrive il testo sulla console Console.WriteLine("Hello World using C#!"); } } Questo frammento di codice mette bene in evidenza come tutto in C# sia un membro di un tipo. Non esistono metodi o variabili globali. Si noti come questa applicazione definisca la sua funzione "Main" come parte di una classe Analizziamo ora l'analogo codice scritto però in Visual Basic: Visual Basic.NET ' Permette riferimenti semplificati al namespace System Imports System ' Il Module ospita l'entry point dell'applicazione Public Module modmain ' "Main" è l'entry point dell'applicazione Sub Main() ' Scrive il testo sulla console Console.WriteLine ("Hello World using Visual Basic!") End Sub End Module Si noti, per contrasto, la struttura tradizionale del programma in Visual Basic. C++ // L'utilizzo dell'assemby mscorlib.dll deve essere specificato! #using mscorlib.dll // Permette riferimenti semplificati al namespace System using namespace System; // La global function "main" è l'entry point dell'applicazione void main() { // Scrive il testo sulla console Console::WriteLine(S"Hello World using Managed Extensions for C++!"); } Per poter accedere al codice gestito nel namespace System, l'uso dell'assembly che lo contiene (mscorlib.dll) deve essere specificato perché non assunto automaticamente in C++ come lo è in C#; quindi è necessario iniziare il programma con lo statement #using <mscorlib.dll>. using namespace System; permette riferimenti diretti al codice contenuto nel namespace System. Da rilevare come sia necessario l'uso dell'operatore di scope resolution (::) al posto del dot (.) per accedere alla funzione WriteLine della classe Console. Fonti: Documentazione .NET Framework SDK |