25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Правилно използване на изрази<br />

При работата с изрази има едно много просто правило: не ползвайте<br />

сложни изрази! Сложен израз наричаме всеки израз, който извършва<br />

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

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

{<br />

for (int j = 0; j < yCoord.Length; j++)<br />

{<br />

matrix[i][j] =<br />

matrix[xCoord[FindMax(i) + 1]][yCoord[FindMin(i) + 1]] *<br />

matrix[yCoord[FindMax(i) + 1]][xCoord[FindMin(i) + 1]];<br />

}<br />

}<br />

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

спрямо някакви изчисления върху някакви координати. Всъщност е много<br />

трудно да се каже какво точно се случва, защото е използван сложен израз.<br />

Има много причини, заради които трябва да избягваме използването на<br />

сложни изрази като в примера по-горе. Ще изброим някои от тях:<br />

- Кодът трудно се чете. В нашия пример няма да ни е лесно да разберем<br />

какво прави този код и дали е коректен.<br />

- Кодът трудно се поддържа. Помислете, какво ще ни струва да<br />

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

- Кодът трудно се поправя, ако има дефекти. Ако примерният код погоре<br />

даде IndexOutOfRangeException, как ще разберем извън границите<br />

на кой точно масив сме излезли? Това може да е масивът xCoord или<br />

yCoord или matrix, а излизането извън тези масиви може да е на<br />

няколко места.<br />

- Кодът трудно се дебъгва. Ако намерим грешка, как ще дебъгнем<br />

изпълнението на този израз, за да намерим грешката?<br />

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

вредно и трябва да се избягва. Вместо един сложен израз, можем да<br />

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

разумни имена. По този начин кодът става по-прост, по-ясен, по-лесен за<br />

четене и разбиране, по-лесен за промяна, по-лесен за дебъгване и полесен<br />

за поправяне. Нека сега пренапишем горния код, без сложни изрази:<br />

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

{<br />

for (int j = 0; j < yCoord.Length; j++)<br />

{<br />

int maxStartIndex = FindMax(i) + 1;

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

Saved successfully!

Ooh no, something went wrong!