Código no seguro y punteros (Guía de programación de C#)
Actualización: noviembre 2007
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. Para obtener más información, vea Seguridad (Guía de programación de C#). |
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 al respecto, vea:
Cómo: Utilizar punteros para copiar una matriz de bytes (Guía de programación de C#)
Cómo: Utilizar la función ReadFile de Windows (Guía de programación de C#)
Especificación del lenguaje C#
Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.
18 Código no seguro
B 3 Extensiones gramaticales para el código no seguro