Prošli
put smo učili Nizove u C# programskom jeziku, dok ćemo danas učiti još jednu
interesantnu i korisnu stvar; funkcije. Bez obzira da li ste početnik u programiranju
i bez obzira da li ste do sada učili funkcije u C# programskom jeziku,
definitivno ste ih koristili čak i u vašem prvom C# programu. Funkcije
predstavljaju jednu izdvojenu celinu naredbi koji izvršavaju neki zadatak. Funkcije
pravite kada imate potrebu da deo koda izdvojite i stavite u jednu celinu ili
kad imate potrebu da jedan deo koda više puta koristite u programu.
Jednostavnije je da pišete samo jednom kod i da ga pozovete kad god vam treba nego
da pišete isti kod. Na primer imate funkciju koja latinična slova konvertuje na
ćirilična slova. Kad god hoćete da nešto napišete na ćirilici samo pozovete funkciju
koja to radi. Isto tako na primer; kad imate neku grešku, ispravljate je
samo na jednom mestu u funkciji a ne sto puta u celom kodu. Funkcije često
nazivaju metodama, što one i jesu. Ali mnogo programera danas meša pojam metode
sa funkcijama jer postoji razlika. Metode nisu samo funkcije, već predstavljaju
i druge članove klase i strukture koji ne predstavljaju podatke. Znači metode
su i indekseri, operatori, konstruktori i destruktori. Čak i svojstva se ponekad
smatraju metodama, ali treba znati da svojstva imaju samo karakteristike metoda
i atributa, ali svojstva nisu ni metode ni atributi. Ovo je bitno da znate najviše radi testova koji se polažu za Microsoft sertifikate. I pored toga što su funkcije u C# programskom jeziku slične funkcijama u C i C++ programskom jeziku, funkcije u C++ programskom jeziku možete pogledati ovde; one se takođe razlikuju. C# programski jezik ne podržava globalne metode. Svaku
funkciju morate pisati unutar klase. U C# programskom jeziku nije moguće koristiti blokove za
grupisanje modifikatora poput public ili private već se u C# programskom jeziku funkcije ali i ostale metode
moraju deklarisati sa modifikatorima. Modifiers - modifikatori vam određuju rang
delovanja promenjive, funkcije, strukture, metode i klase na nivou celog Solution – rešenja. Osnovni modifikatori pristupa su:
- Public – javan, bez restrikcija.
- Protected Internal – limitiran na program, klasu i izvedene klase
- Internal – limitiran na program i klasu
- Protected – limitiran na klasu i izvedene klase.
- Private – limitiran samo na klasu
Pored navedeni modifikatora obavezno trebate obratiti
pažnju i na ključnu reč:
- static – omogućava da nam nije potrebno da instaciramo klasu kako bi smo pristupili članu klase
Postoje i drugi modifikatori kojima pravimo anonimne ili
asinhronizovane funkcije ali o njima će biti posebno pisano u narednim
postovima.
( Funkcije mogu da vraćaju i ne vraćaju vrednost )
U C# programskom jeziku imate jednu specijalnu funkciju, funkcije koje ne vraćaju
vrednost i funkcije koje vraćaju vrednost. Svaka od njih može uzimati
argumente. Specijalna funkcija ili funkcija koju poznajete kao Main() funkcija
se koristi kao startna pozicija svakog programa. Može postojati samo jedna
funkcija Main() u jednoj klasi ali u drugačijem imenskom prostoru.
static void Main(string[] args) {}
Ako
bi ste napravili neku klasu u istom inenskom prozoru i u njoj navedenu funkciju
dobili bi ste grešku:
- Program has more than one entry point defined. Compile with /main to specify the type that contains the entry point.
Zato
možete imati na primer više formi u projektu gde svaka forma ima svoju Main()
funkciju, ali to je zato što svaka forma ima drugačiji imenski prostor. Takođe
vidimo da Main() funkcija prihvata argumente u args niz tipa string. I takođe
vidimo ključnu reč void koja nam potvrđuje da navedena funkcija ne vraća nikakvu
vrednost, već se program završava kad se funkcija izvrši do kraja. Ovu funkciju
nikad ne trebate menjati i posebno ne trebate da pravite neku svoju.
Funkcije
koje ne vraćaju vrednost

