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.

Глава 9. Методи 333<br />

1<br />

Връщане на резултат от метод<br />

До момента, винаги давахме примери, в които методът извършва някакво<br />

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

и с това се изчерпват "задълженията" му. Един метод, обаче, освен просто<br />

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

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

Деклариране на метод с връщана стойност<br />

Ако погледнем отново как декларираме метод:<br />

static ()<br />

Ще си припомним, че когато обяснявахме за това, споменахме, че на<br />

мястото на поставяме void. Сега ще разширим дефиницията,<br />

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

тип – примитивен (int, float, double, …) или референтен (например string<br />

или масив), в зависимост от какъв тип е резултатът от изпълнението на<br />

метода.<br />

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

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

като резултат. Ето как би изглеждала декларацията на метода:<br />

static double CalcSquareSurface(double sideLength)<br />

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

Употреба на връщаната стойност<br />

Когато методът бъде изпълнен и върне стойност, можем да си представим,<br />

че C# поставя тази стойност на мястото, където е било извикването на<br />

метода и продължава работа с нея. Съответно, тази върната стойност можем<br />

да използваме от извикващия метод за най-различни цели.<br />

Присвояване на променлива<br />

Може да присвоим резултата от изпълнението на метода на променлива от<br />

подходящ тип:<br />

// GetCompanyLogo() returns a string<br />

string companyLogo = GetCompanyLogo();

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

Saved successfully!

Ooh no, something went wrong!