Codice unsafe e puntatori (Guida per programmatori C#)

Aggiornamento: novembre 2007

Per garantire la sicurezza e assicurare l'indipendenza dai tipi, per impostazione predefinita in C# non è supportata l'aritmetica dei puntatori. Tuttavia, utilizzando la parola chiave unsafe, è possibile definire un contesto unsafe in cui utilizzare i puntatori. Per ulteriori informazioni sui puntatori, vedere l'argomento Tipi di puntatori.

Nota:

Nell'ambiente Common Language Runtime (CLR) il codice unsafe viene indicato come codice non verificabile. In C# il codice unsafe non è necessariamente pericoloso. Si tratta semplicemente di un codice che non può essere sottoposto a un controllo di sicurezza da parte di CLR. Quest'ultimo, pertanto, eseguirà soltanto codice unsafe contenuto all'interno di un assembly completamente attendibile. Se si utilizza codice unsafe, è responsabilità del programmatore garantire che tale codice non introduca problemi di protezione o errori di puntatore. Per ulteriori informazioni, vedere Protezione (Guida per programmatori C#).

Cenni preliminari sul codice unsafe

Di seguito sono elencate le proprietà del codice unsafe:

  • I metodi, i tipi e i blocchi di codice possono essere definiti come unsafe.

  • In alcuni casi, il codice unsafe può migliorare le prestazioni di un'applicazione grazie alla rimozione dei controlli sui limiti delle matrici.

  • Il codice unsafe è necessario quando si chiamano funzioni native che richiedono puntatori.

  • L'utilizzo di codice unsafe introduce problemi di protezione e di stabilità.

  • Per compilare codice unsafe in C#, è necessario compilare l'applicazione con l'opzione /unsafe.

Sezioni correlate

Per ulteriori informazioni, vedere:

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le seguenti sezioni in Specifiche del linguaggio C#:

  • 18 Codice unsafe

  • B.3 Estensioni della grammatica per il codice unsafe

Vedere anche

Concetti

Guida per programmatori C#