Cenni preliminari sulla libreria di classi .NET Framework
.NET Framework include classi, interfacce e tipi di valore che consentono di ottimizzare il processo di sviluppo rendendolo più rapido e che forniscono accesso alle funzionalità di sistema. Per facilitare l'interoperabilità tra i linguaggi, la maggior parte dei tipi .NET Framework è compatibile con la specifica CLS (Common Language Specification) e può pertanto essere utilizzata da qualsiasi linguaggio di programmazione dotato di compilatore conforme a tale specifica.
I tipi di .NET Framework rappresentano gli elementi fondamentali per la compilazione di applicazioni, componenti e controlli .NET. In .NET Framework sono inclusi tipi che consentono di eseguire le funzioni seguenti:
Rappresentare tipi di dati ed eccezioni di base.
Incapsulare strutture di dati.
Eseguire I/O.
Accedere a informazioni su tipi caricati.
Richiamare i controlli di sicurezza di .NET Framework.
Offrire l'accesso ai dati, un'elaborata interfaccia GUI (Graphical User Interface, interfaccia grafica utente) per il lato client e una GUI per il lato client controllata dal server.
.NET Framework offre una vasta gamma di interfacce, nonché di classi astratte e concrete (non astratte). È possibile utilizzare le classi concrete così come sono oppure, in molti casi, derivare da esse classi personalizzate. Per avvalersi delle funzionalità di un'interfaccia è possibile creare, oppure derivare da una delle classi di .NET Framework, una classe che consenta di implementare l'interfaccia.
Convenzioni di denominazione
Nei tipi di .NET Framework è utilizzato uno schema di denominazione con sintassi a punti che definisce una gerarchia. Secondo questa tecnica i tipi correlati vengono raggruppati in spazi dei nomi, in modo da semplificarne le ricerche e i riferimenti. La prima parte del nome completo, fino al primo punto da destra, è il nome dello spazio dei nomi. L'ultima parte del nome è il nome del tipo. System.Collections.ArrayList, ad esempio, rappresenta il tipo ArrayList, appartenente allo spazio dei nomi System.Collections. I tipi di System.Collections possono essere utilizzati per manipolare insiemi di oggetti.
Questo schema di denominazione è vantaggioso per gli sviluppatori di librerie che desiderano estendere .NET Framework poiché consente di creare gruppi gerarchici di tipi e denominarli in modo coerente utilizzando nomi di immediata comprensione. Consente inoltre l'identificazione non ambigua dei tipi mediante il relativo nome completo, ovvero mediante il relativo spazio dei nomi e nome di tipo, in modo da evitare conflitti tra i nomi di tipo. Nella denominazione degli spazi dei nomi è opportuno che gli sviluppatori di librerie rispettino il seguente schema:
NomeSocietà.NomeTecnologia
Lo spazio dei nomi Microsoft.Word, ad esempio, è conforme a questa convenzione.
Il ricorso a schemi di denominazione per raggruppare dei tipi correlati all'intero di spazi dei nomi è un metodo estremamente utile per compilare e documentare librerie di classi. Questo schema di denominazione non ha tuttavia alcun effetto sulla visibilità, sull'accesso ai membri, sull'ereditarietà, sulla sicurezza o sull'associazione. Gli spazi dei nomi possono essere ripartiti tra più assembly e un singolo assembly può contenere tipi provenienti da spazi dei nomi differenti. L'assembly fornisce la struttura formale per la creazione di versioni successive, la distribuzione, la sicurezza, il caricamento e la visibilità in Common Language Runtime.
Per ulteriori informazioni sugli spazi dei nomi e sui nomi dei tipi, vedere Sistema di tipi comuni.
Spazio dei nomi System
Lo spazio dei nomi System è lo spazio dei nomi di primo livello per i tipi fondamentali di .NET Framework. Questo spazio dei nomi include classi che rappresentano i tipi di dati di base utilizzati da tutte le applicazioni: Object (il primo livello della gerarchia di ereditarietà), Byte, Char, Array, Int32, String e così via. Molti di questi tipi corrispondono ai tipi di dati primitivi utilizzati dal linguaggio di programmazione. Quando si scrive il codice utilizzando tipi di .NET Framework è possibile utilizzare la corrispondente parola chiave del linguaggio utilizzato dove è previsto un tipo di dati di base di .NET Framework.
Nella tabella riportata di seguito sono elencati i tipi di base disponibili in .NET Framework con una breve descrizione di ciascun tipo e viene inoltre indicato il tipo corrispondente in Visual Basic, C#, C++ e JScript.
Categoria |
Nome di classe |
Descrizione |
Tipo di dati di Visual Basic |
Tipo di dati di C# |
Tipo di dati C++ |
Tipo di dati di JScript |
---|---|---|---|---|---|---|
Integer |
Intero senza segno a 8 bit. |
Byte |
byte |
unsigned char |
Byte |
|
|
Intero con segno a 8 bit. Non conforme a CLS. |
SByte |
sbyte |
char -o- signed char |
SByte |
|
|
Intero con segno a 16 bit. |
Short |
short |
short |
short |
|
|
Intero con segno a 32 bit. |
Integer |
int |
int -o- long |
int |
|
|
Signed Integer a 64 bit. |
Long |
long |
__int64 |
long |
|
|
Intero senza segno a 16 bit. Non conforme a CLS. |
UShort |
ushort |
unsigned short |
UInt16 |
|
|
Intero senza segno a 32 bit. Non conforme a CLS. |
UInteger |
uint |
unsigned int -oppure- unsigned long |
UInt32 |
|
|
Intero senza segno a 64 bit. Non conforme a CLS. |
ULong |
ulong |
unsigned __int64 |
UInt64 |
|
A virgola mobile |
Un numero a virgola mobile e precisione singola a 32 bit. |
Single |
float |
float |
float |
|
|
Un numero a virgola mobile e precisione doppia a 64 bit. |
Double |
double |
double |
double |
|
Logica |
Un valore Boolean (true o false). |
Boolean |
bool |
bool |
bool |
|
Altro |
Un carattere Unicode a 16 bit. |
Char |
char |
wchar_t |
char |
|
|
Un valore decimale a 128 bit. |
Decimal |
decimal |
Decimal |
Decimal |
|
|
Un intero con segno la cui dimensione dipende dalla piattaforma sottostante (un valore a 32 bit su una piattaforma a 32 bit e un valore a 64 bit su una piattaforma a 64 bit). |
IntPtr Nessun tipo incorporato. |
IntPtr Nessun tipo incorporato. |
IntPtr Nessun tipo incorporato. |
IntPtr |
|
|
Un intero senza segno la cui dimensione dipende dalla piattaforma sottostante (un valore a 32 bit su una piattaforma a 32 bit e un valore a 64 bit su una piattaforma a 64 bit). Non conforme a CLS. |
UIntPtr Nessun tipo incorporato. |
UIntPtr Nessun tipo incorporato. |
UIntPtr Nessun tipo incorporato. |
UIntPtr |
|
Oggetti Class |
Il primo livello della gerarchia di oggetti. |
Object |
object |
Object* |
Object |
|
|
Una stringa di caratteri Unicode immutabile e a lunghezza fissa. |
String |
string |
String* |
String |
Oltre ai tipi di dati di base, lo spazio dei nomi System contiene oltre 100 classi, da quelle che gestiscono le eccezioni a quelle correlate a concetti fondamentali della fase di esecuzione, quali i domini di applicazione e Garbage Collector. Lo spazio dei nomi System contiene inoltre numerosi spazi dei nomi di secondo livello..
Per ulteriori informazioni sugli spazi dei nomi, vedere Riferimento a .NET Framework. Nella documentazione di riferimento viene fornita una breve panoramica di ciascuno spazio dei nomi nonché una descrizione formale di ogni tipo e dei relativi membri.