Código no seguro y punteros (Guía de programación de C#)

Para mantener la seguridad de tipos y la seguridad, C# no admite la aritmética con punteros de manera predeterminada. Sin embargo, si utiliza la palabra clave unsafe, puede definir un contexto no seguro en el que se pueden utilizar punteros. Para obtener más información sobre los punteros, vea el tema Tipos de puntero (Guía de programación de C#).

Nota

En el Common Language Runtime (CLR), se hace referencia al código no seguro como código no comprobable. El código no seguro en C# no es necesariamente peligroso; sólo es código cuya seguridad no puede ser comprobada por el CLR. Por consiguiente, el CLR sólo ejecutará código no seguro si se encuentra en un ensamblado de plena confianza. Si utiliza el código no seguro, es su responsabilidad garantizar que su código no introduce riesgos de seguridad o errores de puntero.

Información general sobre código no seguro

El código no seguro tiene las propiedades siguientes:

  • Los métodos, tipos y bloques de código se pueden definir como no seguros.

  • En algunos casos, el código no seguro puede aumentar el rendimiento de una aplicación al quitar las comprobaciones de los límites de la matriz

  • Se requiere código no seguro al llamar a funciones nativas que requieren punteros.

  • El uso de código no seguro implica riesgos de seguridad y de estabilidad.

  • Para que C# compile código no seguro, la aplicación se debe compilar con /unsafe.

Secciones relacionadas

Para obtener más información, vea:

Especificación del lenguaje C#

Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Conceptos

Guía de programación de C#