Uvod u funkcije u C #

U C #, funkcija je način pakiranja koda koji nešto radi, a zatim vraća vrijednost. Za razliku od C, C ++ a neki drugi jezici, funkcije ne postoje same po sebi. Oni su dio an objektno orijentirano pristup programiranju.

Program za upravljanje proračunskim tablicama, na primjer, može uključiti funkciju sum () kao dijela objekta.

U C #, funkcija se može nazvati članskom funkcijom - ona je član klase - ali ta je terminologija preostala od C ++. Uobičajeni naziv za to je metoda.

Metoda instancije

Postoje dvije vrste metoda: primjeračka metoda i statička metoda. Ovaj uvod pokriva metodu primjera.

Donji primjer definira jednostavnu klasu i naziva je Test. Ovaj je primjer jednostavan program za konzole, tako da je ovo dopušteno. Prva klasa definirana u datoteci C # mora biti klasa oblika.

Moguće je imati ovaj prazan razred klasa test {}, ali nije korisno. Iako izgleda prazno, - kao i svi klase C # - nasljeđuje od Objekta koji ga sadrži i uključuje zadanu postavku konstruktor u glavnom programu.

var t = novi test ();
instagram viewer

Ovaj kôd radi, ali neće raditi ništa osim pokretanja osim stvaranja instancije t praznog ispitnog razreda. Šifra u nastavku dodaje funkciju, metodu koja proizvodi riječ "Pozdrav".

pomoću sustava;
fucksx1 imena prostora
{
klasa Test
{
javna praznina SayHello ()
{
Konzola. WriteLine ("Pozdrav");
}
}
razredni program
{
statička praznina Main (string [] args)
{
var t = novi test ();
t. Reci zdravo() ;
Konzola. ReadKey ();
}
}
}

Ovaj primjer koda uključuje Konzola. ReadKey (), pa kad se pokrene, prikazuje prozor konzole i čeka ključni unos kao što su Enter, Space ili Return (a ne tipke shift, Alt ili Ctrl). Bez njega, otvorio bi prozor konzole, izdao "Pozdrav", a zatim zatvorio sve na tren oka.

Funkcija Reci zdravo otprilike je jednostavna funkcija koju možete imati. To je javna funkcija, što znači da je funkcija vidljiva izvan klase.

Ako uklonite riječ javnost i pokušati sastaviti kôd, uspijeva s pogreškom kompilacije "funcex1.test. SayHello () 'je nedostupan zbog razine zaštite. "Ako dodate riječ" privatno "gdje je riječ bila javna i prekompiliraju, dobivate istu pogrešku kompilacije. Samo ga vratite u „javni“.

Riječ poništiti u funkciji znači da funkcija ne vraća nikakve vrijednosti.

Karakteristike definicije tipične funkcije

  • Razina pristupa: javna, privatna plus neke druge
  • Povratna vrijednost>: void ili bilo koja vrsta poput int
  • Naziv metode: SayHello
  • Bilo koji parametar metode: za sada nijedan. Oni su definirani u zagradama () nakon naziva metode

Kôd za definiciju druge funkcije, MyAge (), je:

Javni int MyAge ()
{
povratak 53;
}

Dodajte to odmah nakon Reci zdravo() metoda u prvom primjeru i dodajte ta dva retka prije Konzola. ReadKey ().

var age = t. Mojih godina();
Konzola. WriteLine ("David ima 0 0 godina", dob);

Pokretanje programa sada daje ovo:

zdravo
David ima 53 godine,

var age = t. Mojih godina(); poziv metodi vratio je vrijednost 53. To nije najkorisnija funkcija. Korisniji primjer je funkcija Zbir proračunske tablice s nizom od Ints, početni indeks i broj vrijednosti koje treba zbrojiti.

Ovo je funkcija:

javni plutajući zbroj (vrijednosti int [], int startindex, int endindex)
{
var ukupno = 0;
za (var indeks = startindex; Indeks {
ukupno + = vrijednosti [indeks];
}
povratak ukupno;
}

Ovdje su tri slučaja upotrebe. Ovo je kôd koji treba dodati u Main () i nazvati radi testiranja funkcije Sum.

var vrijednosti = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konzola. WriteLine (t. Zbroj (vrijednosti, 0,2)); // Trebalo bi biti 6
Konzola. WriteLine (t. Zbroj (vrijednosti, 0,9)); // treba biti 55
Konzola. WriteLine (t. Zbroj (vrijednosti, 9,9)); // treba biti 10 jer je 9. vrijednost 10

Za For petlja zbraja vrijednosti u rasponu startindex do endindex, pa je za startindex = 0 i endindex = 2, to je zbroj 1 + 2 + 3 = 6. Dok je za 9,9 jednostavno dodano jedna vrijednost [9] = 10.

Unutar funkcije, lokalna varijabla ukupno je inicijalizirana na 0, a zatim su dodani relevantni dijelovi vrijednosti matrice.