Механизми за обмен на данни между методи Печат

Механизми за обмен на данни между методи

Съществуват два начина за обмен на данни между методи:

а) чрез използване на формални параметри. При деклариране на методи след името им

може да се окаже списък от формални параметри:

Void име_процес ([списък от формални параметри])

{/*тяло*/}

Списъка от формални параметри се разделя от запетая, а пред всеки параметър се задава

неговия тип. Формалните параметри се използват за предаване на данни в тялото на метода

или за връщане на резултати в точката на неговото извикване. Извикването на метод с

параметри се извършва чрез името му следван от списък с аргументи.

(5 седмица)

По време на извикване на метода формалните параметри се заместват от фактически.

Затова двата списъка трябва да са еднакви по дължина и по тип на елементите си. Също

така аргументите трябва да отговарят на вида на формалните параметри. Формалните

параметри са 3 вида:

- входни (параметри-значения);

- входно/изходни (параметри-променливи – параметри подавани по адрес);

- изходни (резултатни параметри);

В тялото на метода параметрите играят роля на локални променливи. „Параметрите

значения” се използват за предаване на данни от извикващия метод към извиквания. Те

могат да се променят в тялото на метода, но това няма да се отрази на използваните

аргументи на извикването на метода, тъй като техните значения се копират.

Пример:

Да се напише програма, в която редицата от числа 0-20 се представя като ред от (*).

Редицата завършва с отрицателно число.

- въвеждаме „ 2, 5, 21, 5, -1” да се изведе следното:

**

*****

*****

Class Program

{

Static void Main ()

{

int chislo;

do

{

chislo=int.Parse (Console.ReadLine ());

if (( chislo>=1) &(chislo<=20)

chislo_zw (chislo) ;

}

While (chislo >0);

}

Static void chislo_zw (int chislo)

{

For (int i=1; i<=chislo; i++)

chislo.write (‘*’);

Console.WriteLine ();

}

}

При извикване на методите, значението на аргументите чрез параметрите променливи се

предават към тях. Параметрите променливи дават възможност на база на извършени върху

тях промени в тялото на метода да се променят значенията и на свързаните с тях

аргументи. Пред името на параметъра, както и пред името на аргумента се използва

ключовата дума ref. Аргументите на параметъра променливи са задължително

променливи, не може да бъдат изрази.

Class Program

{

Static void Main ()

{

int chislo;

chislo = int.Parse (Console.ReadLine ());

napolovina (ref chislo);

Console.WriteLine (chislo);

}

Static void napolovina (ref int chislo)

{

chislo = chislo/2;

Console.WriteLine (chislo);

}

}

Ако програмата бъде написана без ключовата дума ref, за въведено число 5 ще изведе 5 не

2. С добавяне на ref променяме числото на входно/изходен и така се извежда 2.

Изходните параметри са подобни на параметрите променливи. При тях обаче

променливите, които се предават като аргументи не трябва да се инициализират т.е. не

трябва да имат начално значение. Те може да се променят в тялото на метода, което

означава промяна на значенията на съответното им значение. Този вид аргументи и

значения се означават с ключовата дума out.

Class Program

{

Static void Main ()

{

int chas, min, sec;

GetTime (out chas, out min, out sec);

System.Console.WriteLine (“{0} : {1} : {2}”, chas, min, sec);

}

chas = System.DateTime.Now.Hour;

min = System.DateTime.Now.Minute;

sec = System.DateTime.Now.Second;

}

}

б) обмен на данни чрез глобални променливи – полета

- обмен на данни между методи чрез полета на един и същ клас (обект).

Декларираните в тялото на класа полета се явяват глобални променливи за всички методи

на класа. В тялото методите също може да се декларират променливи. Те са недостъпни за

извикващите ги методи. Ако имената на локалните променливи съвпадат с имената на

глобалните полета то те ги маскират или препокриват. След завършване на изпълнение на

метода локалните променливи освобождават заеманата от тях памет и не са достъпни