25.07.2017 Views

Intro-CSharp-Book-v2015

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

242 Въведение в програмирането със C#<br />

Stack<br />

myArray<br />

Heap<br />

0.<br />

1 2 3 4 5<br />

0.<br />

1 0 0 0 5<br />

.<br />

Както се вижда, всички елементи, с изключение на тези, на които изрично<br />

сме задали стойност, са инициализирани с 0 при заделянето на масива.<br />

Масивите могат да се обхождат с помощта на някоя от конструкциите за<br />

цикъл, като най-често използван е класическият for цикъл:<br />

int[] arr = new int[5];<br />

for (int i = 0; i < arr.Length; i++)<br />

{<br />

arr[i] = i;<br />

}<br />

Излизане от границите на масив<br />

При всеки достъп до елемент на масив .NET Framework прави автоматична<br />

проверка, дали индексът е валиден или е извън границите на масива.<br />

При опит за достъп до невалиден елемент се хвърля изключение от тип<br />

System.IndexOutOfRangeException. Автоматичната проверка за излизане от<br />

границите на масива е изключително полезна за разработчиците и води до<br />

ранно откриване на грешки при работа с масиви. Естествено, тези проверки<br />

си имат и своята цена и тя е леко намаляване на производителността, която<br />

е нищожна в сравнение с избягването на грешки от тип "излизане от масив",<br />

"достъп до незаделена памет" и други.<br />

Ето един пример, в който се опитваме да извлечем елемент, който се намира<br />

извън границите на масива:<br />

IndexOutOfRangeExample.cs<br />

class IndexOutOfRangeExample<br />

{<br />

static void Main()<br />

{<br />

int[] myArray = { 1, 2, 3, 4, 5, 6 };<br />

Console.WriteLine(myArray[6]);<br />

}<br />

}<br />

В горния пример създаваме масив, който съдържа 6 цели числа. Първият<br />

елемент се намира на индекс 0, а последният – на индекс 5. Опитваме се

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!