使用不安全的陣列

使用指標訪問陣列時,沒有邊界檢查,因此不會丟擲 IndexOutOfRangeException。這使程式碼更快。

使用指標為陣列賦值:

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
                }
            }
        }
    }
}

雖然安全和正常的對應方是:

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

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

不安全的部分通常會更快,並且效能的差異可以根據陣列中元素的複雜性以及應用於每個元素的邏輯而變化。即使它可能更快,但應小心使用,因為它更難維護並且更容易破碎。