C # funktsioonide sissejuhatus

C #-s on funktsioon koodi pakkimise viis, mis teeb midagi ära ja tagastab seejärel väärtuse. Erinevalt C-st C ++ ja mõned muud keeled, funktsioonid iseenesest puuduvad. Nad on osa objektorienteeritud lähenemine programmeerimisele.

Arvutustabelite haldamise programm võib sisaldada näiteks objekti osana funktsiooni sum ().

C #-s võib funktsiooni nimetada liikmefunktsiooniks - see on klassi liige -, kuid see terminoloogia jääb C ++-st üle. Selle tavaline nimi on meetod.

Juhtumi meetod

Meetodeid on kahte tüüpi: eksemplarimeetod ja staatiline meetod. See sissejuhatus hõlmab esinemisjuhtude meetodit.

Allpool toodud näide määratleb lihtsa klassi ja kutsub seda Test. See näide on lihtne konsooliprogramm, seega on see lubatud. Tavaliselt peab C # -failis määratletud esimene klass olema vormiklass.

Võimalik, et niimoodi on tühi klass klassi test {}, kuid see pole kasulik. Ehkki see näeb välja tühi, pärib see - nagu kõik C # -klassid - seda sisaldavast objektist ja sisaldab vaikimisi ehitaja põhiprogrammis.

instagram viewer
var t = uus test ();

See kood töötab, kuid käivitamisel ei tee see midagi, välja arvatud näiteks eksemplari loomine t klassist. Allolev kood lisab funktsiooni, meetodi, mis väljastab sõna "Tere".

süsteemi kasutamine;
nimeruum funcex1
{
klassikatse
{
avalik tühine SayHello ()
{
Konsool. WriteLine ("Tere");
}
}
klassi programm
{
static void Main (string [] args)
{
var t = uus test ();
t. Ütle Tere() ;
Konsool. ReadKey ();
}
}
}

See koodinäide sisaldab Konsool. ReadKey (), nii et kui see töötab, kuvab see konsooliakna ja ootab võtmekirjet, näiteks Enter, Tühik või Tagasi (mitte klahve Shift, Alt ega Ctrl). Ilma selleta avaks konsooli aken, väljastaks "Tere" ja sulgeks kõik ühe pilguga.

Funktsioon Ütle Tere on umbes nii lihtne funktsioon kui teil on. See on avalik funktsioon, mis tähendab, et see on klassist nähtav.

Kui eemaldate sõna avalik ja proovida kompileerima koodi, see ebaõnnestub kompileerimisveaga "funcex1.test. SayHello () 'on kaitsetaseme tõttu ligipääsmatu. "Kui lisate sõna" privaatne "sinna, kus oli sõna avalik, ja kompileerige uuesti, saate sama kompileerimisvea. Muutke see lihtsalt "avalikuks".

Sõna tühine funktsioonis tähendab, et funktsioon ei tagasta väärtusi.

Tüüpilised funktsiooni määratluse omadused

  • Juurdepääsu tase: avalik, privaatne ja veel mõned
  • Tagastatav väärtus>: tühine või mis tahes tüüp, näiteks int
  • Meetodi nimi: SayHello
  • Mis tahes meetodi parameetrid: praegu pole ühtegi. Need on määratletud meetodi nime järel sulgudes ()

Teise funktsiooni MyAge () määratluse kood on:

avalik int MyAge ()
{
tagasi 53;
}

Lisage see kohe pärast Ütle Tere() meetodi esimeses näites ja lisage need kaks rida enne Konsool. ReadKey ().

var vanus = t. Minu vanus();
Konsool. WriteLine ("David on {0} aastane", vanus);

Programmi käitamine väljastab nüüd selle:

Tere
David on 53-aastane,

var vanus = t. Minu vanus(); meetodile helistamine tagastati väärtus 53. See pole kõige kasulikum funktsioon. Veel kasulikum näide on arvutustabeli funktsioon Summa koos massiiviga ints, algusindeks ja summeeritavate väärtuste arv.

See on funktsioon:

avaliku ujuki summa (int [] väärtused, int startindex, int endindex)
{
var kokku = 0;
jaoks (var indeks = startindex; indeks <= endindex; register ++)
{
kokku + = väärtused [indeks];
}
tagasi kokku;
}

Siin on kolm kasutusjuhtu. See on kood, mis tuleb lisada kausta Main () ja helistada, et testida Sum funktsiooni.

var väärtused = uus int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konsool. WriteLine (t. Summa (väärtused, 0,2)); // Peaks olema 6
Konsool. WriteLine (t. Summa (väärtused, 0,9)); // peaks olema 55
Konsool. WriteLine (t. Summa (väärtused, 9,9); // peaks olema 10, kuna 9. väärtus on 10

For silmus liidab vahemikus startindex olevad väärtused kokku endindexiga, nii et startindex = 0 ja endindex = 2 on see summa 1 + 2 + 3 = 6. 9,9 puhul lisab see lihtsalt ühe väärtuse [9] = 10.

Funktsiooni piires lähtestatakse lokaalse muutuja kogusummaks 0 ja seejärel lisatakse massiivi väärtuste vastavad osad.