Metoda (kao u C-u funkcija) predstavlje grupu naredbi koja izvršava određeni zadatak.

Opšti oblik metode:

modifikator_pristupa   tip_vrednosti_koju_vraća   ime_metode (tip_parametra ime_parametra, ...)
{ telo_metode_gde_se_nalazi_programski_kod }

Ukoliko metoda vraća neku vrednost mora se:
  ---> navesti tip povratne vrednosti u deklaraciji metode
  ---> koristiti ključna reč return prilikom završavanja metode

Ono što metoda vraća može se dodeliti, na primer, nekoj promenljivoj, a može da se uopšte ne upotrebi (zavisi od potreba programa).

Modifikator pristupa određuje da li je i koliko metoda dostupna drugim klasama ili projektima.

Kada se metoda poziva: navodi se njeno ime i u zagradi konkretni parametri. Ako je metoda statička, prvo se stavlja ime klase, pa tačka, pa naziv metode. Ako metoda nije statička, onda se navodi ime objekta, pa tačka, pa ime metode !

Šta je u stvari potpis metode?

Potpis metode čine: povratna vrednost koju metoda vraća, naziv metode i parametri metode

( *** Pogledajte kako smo kreirali neke metode na času vežbi*** )

Parametri metode

Parametri metode su u stvari podaci kojima snabdevamo metodu. Mogu da se u metodu prosleđuju po vrednosti i po referenci.

Prenos parametara po vrednosti:

Do sada smo koristili prenos parametara po vrednosti. U tom slučaju praktično se metodi prosleđuje kopija vrednosti parametara. Bilo koja promena koja se izvrši nad promenljivom unutar metode, nema NIKAKVOG EFEKTA na parametra koji su navedeni u pozivu metode. (*** Pogledajte kako smo to uradili na časovima vežbi***)

Prenos parametara po referenci:

Referenca je u stvari adresa promenljive u memoriji. To znači da se sve promene odražavaju i na promenljivu koja se koristi kao parametar.

Za ovaj način prosleđivanja, potrebno je koristiti ključnu reč REF kod inicijalizacije metode i kod pozivanja metode i to ispred onih parametara koje želimo preneti preko reference.

(*** Pogledajte kako smo ovo uradili na časovima vežbi***)

VAŽNO: Kada koristimo prenos parametara preko reference ne smeju se koristiti konstantne vrednosti (CONST), i promenljiva koja se koristi mora biti inicijalizovana !

Napomena: ako želimo da kao parametar postavimo neki niz, ne treba nam REF, jer su nizovi uvek referentni tipovi. Samo je potrebno dati naziv niza, vez zagrada (koji je u stvari referenca na početak niza u memoriji)


! ! ! DODATNI MATERIJAL KOJI TREBA PROČITATI KOD KUĆE (OBAVEZNO) ! ! !


Izlazni parametri:

Parametar možemo definisati da bude izlazni parametar, preko ključne reči OUT koja se koristi isto kao i ref (dakle, kao modifikator parametra u definiciji metode i pri njenom pozivanju).

Rezultat je isto ponašanje kao i kod referentnog tipa, u smislu da se vrednost parametra na kraju metode vraća promenjivoj koja je upotrebljena u njenom pozivu.

Pa u čemu je onda razlika?
-> Kod parametra OUT mogu se koristiti neinicijalizovane promenjive. Iako je nekoj promenjivoj dodeljena vrednost, kada se koristi u metodi njena vrednost će biti izgubljena nakon izvršenja metode.

VAŽNO: Ključne reči OUT i REF se moraju navesti u pozivu metode

Isto tako, treba da znate da metode mogu biti i članice struktura.

Nizovi parametara:

C# dozvoljava da definišemo jedan poseban parametar za metode, koji mora biti zadnji u definiciji metode i naziva se NIZ PARAMETARA. Ovaj parametar dozvoljava da pozivamo metode koristeći promenjivu količinu parametara, a definiše se ključnom rečju PARAMS.

To se koristi tako što se nakon svih ostalih parametara navede reč params zatim tip podatka i onda niz parametara koji svi moraju da su istog tipa.

Tada je pogodno da se u kodu koristi petlja foreach, jer prilikom psanja koda ne znamo konkretan broj parametara.

Preopterećivanje metoda:

Moguće je imati dve metode istog naziva koje kao parametre imaju različite tipove promenjivih.
--> preopterećenje operatora prepoznaje ovu situaciju i omogućava da napravimo više metoda sa istim imenom, koje rade sa različitim tipovima argumenata.

U ovom slučaju metode imaju isti naziv, ali imaju različit potpis !

Korišćenje modifikatora pristupa:

Modifikatori pristupa označavaju opseg do kojega je dostupan član neke klase.

public - član je dostupan javno, tj svima bez ikakvih ograničenja

private - član je dostupan samo unutar klase. Ovo je podrazumevana vrednost ako se ne navede ništa !

internal - član je dostupan samo unutar klase i istog programa

protected - član je dostupan samo unutar klase i njenih izvedenih klasa

protected internal - član je dostupan unutar programa, klase i njenih izvedenih klasa

---

static  - za sve instace (objekte, primetke) klase koje sadrže statičku promenljivu ili metodu važi sledeće: Tom statičkom elementu pristupamo tako đto navedemo imeKlase.ImeElementa. Dakle, nije potrebno da instanciramo klasu !


Ilustrovani i objašnjeni primeri:

Preporučujem da pogledate i objašnjene  primere koji su postavljeni na sajtu: https://www.mycity.rs/NET/4-C-Metode-Nizovi.html


...

Last modified: Tuesday, 6 October 2020, 2:42 PM