Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Використання модифікаторів для параметрів методів.

Поиск

Для того, щоб надати методам можливість змінювати аргументи, які передаються їм за значенням, або повертати значення через список параметрів, досить використати спеціальні модифікатори. Вони вказуються перед параметром, що має бути зміненим, у визначенні методу та перед відповідним аргументом у виклику методу. Таку роль відіграють модифікатори ref та out. Наступна таблиця описує модифікатори параметрів.

Модифікатор Призначення
Відсутній Параметр вважається вхідним, тобто передається методу за значенням
out Параметр вважається вихідним, тобто визначається всередині методу; параметр передається за посиланням
ref Параметр вважається вхідним-вихідним, тобто його значення, що передається методу, може бути змінене; параметр передається за посиланням

Зауваження. Важливо зазначити принципову різницю між параметрами з модифікаторами out та ref. Аргумент, що передається методу на місці вихідного параметра із модифікатором out не повинен ініціалізуватись перед викликом методу, адже його значення визначається у методі. Аргумент, що передається в ролі параметру з модифікатором ref, обов’язково повинен бути проініціалізованим перед викликом методу. Завдяки передачі за посиланням (модифікатор ref), функція має змогу змінювати самі об’єкти!

 

20. Типи параметрів в мові С#.

За синтаксисом будь-який метод може використовувати параметри, які дозволяють йому спілкуватись з іншими частинами програми, зокрема, одержуючи необхідну для роботи вхідну інформацію або навпаки – повертаючи оброблену інформацію. У більшості звертань до методів С# ми використовували параметри: наприклад, звертаючись до методів Console.WriteLine або Math.Cos чи Math.Sin, ми записували у дужках аргументи для їх виклику.

Звертання до функції відбувається за її іменем. Інші функції, що її викликають, обмінюються з нею інформацією через інтерфейс функції – список її параметрів. Ці параметри у визначенні функції носять назву формальних параметрів. Формальних, тому що функція задає формальну схему дій з цими параметрами. Так само у визначеному інтегралі змінна інтегрування є формальною. Від заміни її імені з на або значення інтегралу не зміниться. У момент виклику функції формальні параметри мають бути конкретизовані – на їх місце підставляються необхідні значення. Тому такі параметри у виклику функції звуть фактичними параметрами або просто аргументами. Результат своєї діяльності функція повертає модулю, який її викликав. Як правило, це відбувається у вигляді присвоєння цього результату деякій змінній або використання цього результату у деякому виразі. Модуль, який не формує результат свого виклику зветься процедурою. В мові С# процедури як окремий модуль не реалізовані – їх заміняють функції з порожнім (void) результатом. Через список параметрів функції взаємодіють одна з іншою. Метод класу може мати три параметри: дійсного, цілого та символьного типів, які використовуються для ініціалізації членів цього класу.Слід зазначити, що в момент виклику модуля (функції) з технічної точки зору відбуваються дуже складні і важливі маніпуляції, які зазвичай приховані від уваги програміста. Оскільки модуль після компіляції зберігається окремо, то в момент його виклику і передачі йому керування система має створити для нього всі необхідні йому параметри. Вони створюються у стеку і в них копіюються значення фактичних параметрів. Тобто модуль працює з комплектом копій переданих йому змінних, а після завершення роботи модуля стек звільняється від записаних у нього параметрів. Такий спосіб передачі параметрів є найпростішим і забезпечує модулю доступ лише до значень вхідних даних. Він називається передачею параметрів за значенням. Якщо ж необхідно, щоб модуль повернув через свій інтерфейс деяку інформацію, необхідно задіяти інший, більш складний механізм передачі параметрів. Такі параметри мають бути спеціальним чином виділені. У мові Pascal, наприклад, для цього використовують спеціальне службове слово – специфікацію var. Це означає, що параметр буде передаватись, як адресна змінна. Тобто модуль одержить для роботи значення адреси місця розташування аргументу, таким чином матиме доступ не до копії змінної, а безпосередньо до неї самої. Цей спосіб передачі параметрів називається передачею за посиланням.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 219; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.73.107 (0.006 с.)