C# Language Utiliser des tableaux non sécurisés


Exemple

Lors de l'accès aux tableaux avec des pointeurs, il n'y a pas de vérification des limites et par conséquent, aucune IndexOutOfRangeException ne sera lancée. Cela rend le code plus rapide.

Affectation de valeurs à un tableau avec un pointeur:

class Program
{
    static void Main(string[] args)
    {
        unsafe
        {
            int[] array = new int[1000]; 
            fixed (int* ptr = array)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    *(ptr+i) = i; //assigning the value with the pointer
                }
            }
        }
    }
}

Alors que la contrepartie sûre et normale serait:

class Program
{
    static void Main(string[] args)
    {            
        int[] array = new int[1000]; 

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

La partie dangereuse sera généralement plus rapide et la différence de performance peut varier en fonction de la complexité des éléments de la matrice et de la logique appliquée à chacun. Même s'il peut être plus rapide, il doit être utilisé avec précaution, car il est plus difficile à entretenir et plus facile à briser.