Metoda su blokovi koda koji obavljaju određeni zadatak ili izvršavaju određene operacije. Metode omogućuju organizaciju koda na način da se funkcionalnost razbija na manje dijelove, što olakšava čitanje, održavanje i ponovnu upotrebu koda.
class Program
{
static void NazivMetode()
{
// kod unutar metode
}
}
NazivMetode je ime metode
Static znači da metoda pripada klasi Programa, a ne objektu klase Programa.
void znači da ova metoda nema povratnu vrijednost.
Da bi smo pozvali metodu moramo samo napisati ime metode te zatim dvije zagrade ().
U sljedećem primjeru pozvat ćemo metodu Predstavljanje.
static void Predstavljanje()
{
Console.WriteLine("Dobar dan, moje ime je Igor.");
}
static void Main(string[] args)
{
Predstavljanje(); // Poziva metodu Predstavljanje čime ispisujemo Dobar dan, moje ime je Igor.
}
Istu metodu možemo pozvati više puta
static void Predstavljanje()
{
Console.WriteLine("Dobar dan, moje ime je Igor.");
}
static void Main(string[] args)
{
Predstavljanje();
Predstavljanje();
Predstavljanje();
}
Informacije se mogu proslijediti metodama kao parametri, a parametri unutar metoda su varijable odrđene metode.
Parametre navodimo unutar zagrada () metode. Različite parametre odvajamo zarezom unutar zagrada.
U sljedećem primjeru ćemo stvoriti parametar ime koji će biti string.
static void Predstavljanje(string ime)
{
Console.WriteLine("Dobar dan, moje ime je " + ime);
}
static void Main(string[] args)
{
Predstavljanje("Gregor");
Predstavljanje("Tomica");
/*
Ispis:
Dobar dan, moje ime je Gregor
Dobar dan, moje ime je Tomica
*/
}
U sljedećem primjeru ćemo nadodati dva različita parametra.
static void Predstavljanje(string ime, int godina)
{
Console.WriteLine("Dobar dan, moje ime je " + ime + " i imam " + godina + " godina.");
}
static void Main(string[] args)
{
Predstavljanje("Gregor", 27);
Predstavljanje("Tomica", 48);
/*
Ispis:
Dobar dan, moje ime je Gregor i imam 27 godina.
Dobar dan, moje ime je Tomica i imam 48 godina.
*/
}
U sljedećem primjeru ćemo postaviti osnovni parametar. Ako pozovemo metodu bez argumenta onda će se iskoristiti osnovni parametar.
static void MarkaKompjutera(string marka = "Apple")
{
Console.WriteLine(marka);
}
static void Main(string[] args)
{
MarkaKompjutera("Microsoft");
MarkaKompjutera("Razer");
MarkaKompjutera();
MarkaKompjutera("Dell");
/*
Ispis:
Microsoft
Razer
Apple
Dell
*/
}
Ako želimo vratiti neku vrijednost unutar metode koristimo se intom ili doubleom.
U sljedećem primjeru ćemo vratiti zbroj parametra x i 10.
static int Zbroj(int x)
{
return 10 + x;
}
static void Main(string[] args)
{
Console.WriteLine(Zbroj(5)); // Ispisuje 15
}
Možemo isto tako vratiti zbroj dva parametra.
static int Zbroj(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
Console.WriteLine(Zbroj(5, 15)); // Ispisuje 20
}
Vrijednost rezultata koji dobijemo pozivanjem metode možemo spremiti unutar varijable.
static int Zbroj(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
int z = Zbroj(2, 4);
Console.WriteLine(z); // Ispisuje 6
}
Također je moguće slati argumente sa sintaksom key: vrijednost.
static void Imena(string osoba1, string osoba2, string osoba3)
{
Console.WriteLine("Najdrazi mi je " + osoba2);
}
static void Main(string[] args)
{
Imena(osoba3: "Patrik", osoba1: "Veki", osoba2: "Marko");
// Ispisuje Najdrazi mi je Marko
}
Sa metodom overloading, više metoda može imati isto ime s različitim parametrima.
int MetodaBroja(int x)
float MetodaBroja(float x)
double MetodaBroja(double x, double y)
U sljedećem primjeru ćemo napraviti to da s istim nazivom metode možemo zbrajati dva inta ili dva doublea.
static int Zbrajanje(int x, int y)
{
return x + y;
}
static double Zbrajanje(double x, double y)
{
return x + y;
}
static void Main(string[] args)
{
int x = Zbrajanje(8, 10);
double y = Zbrajanje(4.5, 10.13);
Console.WriteLine("Int: " + x); // Ispisuje 18
Console.WriteLine("Double: " + y); // Ispisuje 14.63
}