Condividi tramite


Codice unsafe e puntatori (Guida per programmatori C#)

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 sicurezza o errori di puntatore.

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 sicurezza 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 la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Concetti

Guida per programmatori C#