Úvod do funkcií v jazyku C #

V C # je funkcia spôsob balenia kódu, ktorý niečo robí a potom vracia hodnotu. Na rozdiel od C, C ++ a niektoré ďalšie jazyky, funkcie samy neexistujú. Sú súčasťou objektovo orientovaný prístup k programovaniu.

Program na správu tabuliek môže napríklad obsahovať funkciu sum () ako súčasť objektu.

V C # sa funkcia môže nazývať členská funkcia - je to člen triedy - ale táto terminológia zostáva z C ++. Bežný názov je metóda.

Metóda inštancie

Existujú dva typy metód: metóda inštancie a metóda statická. Tento úvod sa týka inštancie.

Nasledujúci príklad definuje jednoduchú triedu a volá ju skúška. Tento príklad je jednoduchý program konzoly, takže je to povolené. Prvá trieda definovaná v súbore C # musí byť zvyčajne trieda formulárov.

Je možné mať takúto prázdnu triedu test triedy {}, ale nie je to užitočné. Aj keď to vyzerá prázdne, rovnako ako všetky triedy C # dedí od objektu, ktorý ho obsahuje, a obsahuje predvolené staviteľ v hlavnom programe.

var t = nový test ();

Tento kód funguje, ale pri spustení nič neurobí, okrem vytvorenia inštancie

instagram viewer
T prázdnej testovacej triedy. Nasledujúci kód pridáva funkciu, metódu, ktorá vydá slovo „Ahoj“.

pomocou systému;
namespace funcex1
{
test triedy
{
verejné neplatné SayHello ()
{
Konzoly. WriteLine („Ahoj“);
}
}
program triedy
{
static void Main (string [] args)
{
var t = nový test ();
t. Povedz ahoj() ;
Konzoly. ReadKey ();
}
}
}

Tento príklad kódu obsahuje Konzoly. ReadKey (), takže keď sa spustí, zobrazí sa okno konzoly a čaká sa na zadanie kľúča, ako napríklad Enter, medzera alebo návrat (nie klávesy Shift, Alt alebo Ctrl). Bez neho by sa otvorilo okno konzoly, výstup „Ahoj“ a potom všetko zatvorilo v okamihu oka.

Funkcia Povedz ahoj je asi tak jednoduchá funkcia, ako môžete mať. Je to verejná funkcia, čo znamená, že táto funkcia je viditeľná zvonku triedy.

Ak slovo odstránite verejnosť a skúste to kompilácie kód zlyhá s chybou kompilácie "funcex1.test. SayHello () 'je neprístupný z dôvodu jeho úrovne ochrany. „Ak pridáte slovo„ private “, kde bolo slovo public a recompile, dostanete rovnakú chybu pri kompilácii. Stačí ho zmeniť späť na „verejné“.

Slovo prázdno vo funkcii znamená, že funkcia nevracia žiadne hodnoty.

Charakteristické vlastnosti Definícia funkcie

  • Úroveň prístupu: verejná, súkromná plus niektorí iní
  • Návratová hodnota>: void alebo akýkoľvek typ, napríklad int
  • Názov metódy: SayHello
  • Akékoľvek parametre metódy: zatiaľ žiadne. Sú definované v zátvorkách () za názvom metódy

Kód pre definíciu inej funkcie, MyAge (), je:

public int MyAge ()
{
návrat 53;
}

Pridajte to hneď za Povedz ahoj() V prvom príklade pridajte tieto dva riadky Konzoly. ReadKey ().

var vek = t. Môj vek();
Konzoly. WriteLine ("David má {0} rokov", vek);

Spustenie programu má teraz tieto výstupy:

Ahoj
David má 53 rokov,

var vek = t. Môj vek(); volanie metódy vrátilo hodnotu 53. Nie je to najužitočnejšia funkcia. Užitočnejším príkladom je funkcia tabuľky so súhrnom ints, počiatočný index a počet hodnotených súčtov.

Toto je funkcia:

public float Sum (int [] hodnoty, int startindex, int endindex)
{
var total = 0;
pre (var index = startindex; index <= endIndex; index ++)
{
celkom + = hodnoty [index];
}
návratnosť celkom;
}

Tu sú tri prípady použitia. Toto je kód, ktorý sa pridá do Main () a zavolá na testovanie funkcie súčtu.

var hodnoty = nová hodnota int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konzoly. WriteLine (t. Súčet (hodnoty, 0,2)); // Malo by byť 6
Konzoly. WriteLine (t. Súčet (hodnoty, 0,9)); // by malo byť 55
Konzoly. WriteLine (t. Súčet (hodnoty, 9,9)); // by malo byť 10, pretože 9. hodnota je 10

Pre slučka sčítava hodnoty v rozsahu startindex do endindex, takže pre startindex = 0 a endindex = 2 je to súčet 1 + 2 + 3 = 6. Zatiaľ čo v prípade 9,9 sa iba pridávajú jedna hodnota [9] = 10.

V rámci funkcie sa inicializuje celková lokálna premenná na 0 a potom sa pridajú príslušné časti hodnôt polí.

instagram story viewer