Introduzione alla libreria di classi .NET Framework
In .NET Framework sono inclusi classi, interfacce e tipi di valori che consentono di velocizzare e ottimizzare il processo di sviluppo e di accedere alle funzionalità di sistema. Per facilitare l'interoperabilità tra i linguaggi, i tipi di .NET Framework sono compatibili con CLS (Common Language Specification) e possono pertanto essere utilizzati da qualsiasi linguaggio di programmazione dotato di compilatore conforme a tale specifica.
I tipi di .NET Framework rappresentano gli elementi fondamentali per la generazione di applicazioni, componenti e controlli .NET. In .NET Framework sono inclusi tipi che consentono di svolgere le seguenti funzioni:
- 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 protezione 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. 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 generare 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 protezione, il caricamento e la visibilità in Common Language Runtime.
Per ulteriori informazioni sugli spazi dei nomi e sui nomi dei tipi, vedere Common Type System.
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 nella gerarchia dell'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 che segue sono elencati alcuni dei tipi di valori forniti da .NET Framework; per ogni tipo viene fornita una breve descrizione e viene indicato il tipo corrispondente in Visual Basic, in C# e nelle estensioni gestite per C++. La tabella include anche voci relative alle classi Object e String, per le quali sono disponibili parole chiave corrispondenti in numerosi linguaggi.
Categoria | Nome di classe | Descrizione | Tipo di dati di Visual Basic | Tipo di dati di C# | Tipo di dati delle estensioni gestite per C++ | Tipo di dati di JScript |
---|---|---|---|---|---|---|
Integer | Byte | Un valore integer senza segno a 8 bit. | Byte | byte | char | Byte |
SByte | Un valore integer con segno a 8 bit.
Non compatibile con CLS. |
SByte
Nessun tipo specifico fornito dal linguaggio. |
sbyte | char con segno | SByte | |
Int16 | Un valore integer con segno a 16 bit. | Short | short | short | short | |
Int32 | Un valore integer con segno a 32 bit. | Integer | int | int
oppure long |
int | |
Int64 | Un valore integer con segno a 64 bit. | Long | long | __int64 | long | |
UInt16 | Un valore integer senza segno a 16 bit.
Non compatibile con CLS. |
UInt16
Nessun tipo specifico fornito dal linguaggio. |
ushort | unsigned short | UInt16 | |
UInt32 | Un valore integer senza segno a 32 bit.
Non compatibile con CLS. |
UInt32
Nessun tipo specifico fornito dal linguaggio. |
uint | unsigned int
oppure unsigned long |
UInt32 | |
UInt64 | Un valore integer senza segno a 64 bit.
Non compatibile con CLS. |
UInt64
Nessun tipo specifico fornito dal linguaggio. |
ulong | unsigned __int64 | UInt64 | |
A virgola mobile | Single | Un numero a virgola mobile e precisione singola a 32 bit. | Single | float | float | float |
Double | Un numero a virgola mobile e precisione doppia a 64 bit. | Double | double | double | double | |
Logica | Boolean | Un valore Boolean (true o false). | Boolean | bool | bool | bool |
Altro | Char | Un carattere Unicode (a 16 bit). | Char | char | wchar_t | char |
Decimal | Un valore decimale a 96 bit. | Decimal | decimal | Decimal | Decimal | |
IntPtr | Un numero 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 specifico fornito dal linguaggio. |
IntPtr
Nessun tipo specifico fornito dal linguaggio. |
IntPtr
Nessun tipo specifico fornito dal linguaggio. |
IntPtr | |
UIntPtr | Un numero 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 compatibile con CLS. |
UIntPtr
Nessun tipo specifico fornito dal linguaggio. |
UIntPtr
Nessun tipo specifico fornito dal linguaggio. |
UIntPtr
Nessun tipo specifico fornito dal linguaggio. |
UIntPtr | |
Oggetti Class | Object | Il primo livello della gerarchia di oggetti. | Object | object | Object* | Object |
String | 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 quasi 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, consultare 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.
Vedere anche
Common Type System | Riferimento a .NET Framework | Approfondimento di .NET Framework