C# LanguageCódigo inseguro en .NET


Observaciones

  • Para poder utilizar la palabra clave unsafe en un proyecto .Net, debe marcar "Permitir código no seguro" en Propiedades del proyecto => Generar
  • El uso de código inseguro puede mejorar el rendimiento, sin embargo, es a costa de la seguridad del código (de ahí el término unsafe ).

Por ejemplo, cuando usa un bucle for una matriz como esta:

for (int i = 0; i < array.Length; i++)
{
    array[i] = 0;
}

.NET Framework garantiza que no exceda los límites de la matriz, lanzando una IndexOutOfRangeException si el índice excede los límites.

Sin embargo, si usa un código no seguro, puede exceder los límites de la matriz de esta manera:

unsafe
{
    fixed (int* ptr = array)
    {
        for (int i = 0; i <= array.Length; i++)
        {
            *(ptr+i) = 0;
        }
    }
}

Código inseguro en .NET Ejemplos relacionados