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. Методи 317<br />

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

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

Подаване на аргументи, съвместими с типа на съответния<br />

параметър<br />

Трябва да знаем, че можем да подаваме аргументи, които са съвместими по<br />

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

параметри на метода.<br />

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

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

от тип int. Тя ще бъде преобразувана от компилатора до стойност от тип<br />

float и едва тогава ще бъде подадена на метода и той ще бъде изпълнен:<br />

static void PrintNumber(float number)<br />

{<br />

Console.WriteLine("The float number is: {0}", number);<br />

}<br />

static void Main()<br />

{<br />

PrintNumber(5);<br />

}<br />

В примера при извикването на метода PrintNumber() в метода Main() първо<br />

целочисленият литерал 5 (който по подразбиране е от тип int) се<br />

преобразува до съответната стойност с десетична запетая 5.0f. След това<br />

така преобразуваната стойност се подава на метода PrintNumber().<br />

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

The float number is: 5.0<br />

Съвместимост на стойността от израз и параметър на метод<br />

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

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

на метода или от съвместим с него тип (вж. горната точка).<br />

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

от пресмятането на израза да е например от тип int. Т.е. в горния пример,<br />

ако вместо PrintNumber(5) извикаме метода, като на мястото на 5 поставим<br />

например израза 2+3, резултатът от пресмятането на този израз трябва да<br />

е от тип float (който методът очаква) или тип, който може да се<br />

преобразува до float безпроблемно (в нашия случай това е int). За да<br />

онагледим това, нека леко модифицираме метода Main() от предходната<br />

точка:<br />

static void Main()

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

Saved successfully!

Ooh no, something went wrong!