Úvod do funkcí v C #

V C # je funkce způsob balení kódu, který něco dělá a pak vrací hodnotu. Na rozdíl od C, C ++ a některé další jazyky, funkce samy o sobě neexistují. Jsou součástí objektově orientovaný přístup k programování.

Program pro správu tabulek může například obsahovat funkci sum () jako součást objektu.

V C # lze funkci nazvat členskou funkcí - je to člen třídy - ale tato terminologie zůstává z C ++. Obvyklý název je metoda.

Metoda instance

Existují dva typy metod: metoda instance a metoda statická. Tento úvod zahrnuje metodu instance.

Následující příklad definuje jednoduchou třídu a volá ji Test. Tento příklad je jednoduchý program konzoly, takže je to povoleno. První třída definovaná v souboru C # musí být obvykle třída třídy.

Je možné mít takovou prázdnou třídu třída test {}, ale není to užitečné. Přestože vypadá prázdný, stejně jako všechny třídy C # zdědí od objektu, který jej obsahuje a obsahuje výchozí konstruktér v hlavním programu.

var t = nový test ();

Tento kód funguje, ale při spuštění neudělá nic kromě vytvoření instance

instagram viewer
t prázdné testovací třídy. Následující kód přidává funkci, metodu, která vydává slovo „Ahoj“.

using System;
namespace funcex1
{
třída test
{
veřejné neplatné SayHello ()
{
Řídicí panel. WriteLine ("Hello");
}
}
program třídy
{
static void Main (řetězec [] args)
{
var t = nový test ();
t. Řekni Ahoj() ;
Řídicí panel. ReadKey ();
}
}
}

Tento příklad kódu zahrnuje Řídicí panel. ReadKey (), takže při spuštění zobrazí okno konzoly a čeká na zadání položky, jako je Enter, mezera nebo návrat (nikoli klávesy Shift, Alt nebo Ctrl). Bez něj by se otevřelo okno konzoly, výstup „Ahoj“ a vše zavřelo mrknutím oka.

Funkce Řekni Ahoj je asi tak jednoduchá funkce, jak můžete mít. Je to veřejná funkce, což znamená, že funkce je viditelná zvnějšku.

Pokud slovo odeberete veřejnost a zkuste to sestavit kód selže s chybou kompilace "funcex1.test. SayHello () 'je nepřístupný kvůli jeho úrovni ochrany. "Pokud přidáte slovo" private ", kde bylo slovo public a recompile, dostanete stejnou chybu kompilace. Stačí jej změnit zpět na „veřejný“.

Slovo neplatný ve funkci znamená, že funkce nevrací žádné hodnoty.

Charakteristické vlastnosti Definice funkce

  • Úroveň přístupu: veřejná, soukromá a další
  • Návratová hodnota>: void nebo jakýkoli typ, například int
  • Název metody: SayHello
  • Jakékoli parametry metody: zatím žádné. Ty jsou definovány v závorkách () za názvem metody

Kód pro definici jiné funkce, MyAge (), je:

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

Přidejte to hned po Řekni Ahoj() v prvním příkladu a přidejte tyto dva řádky dříve Řídicí panel. ReadKey ().

var age = t. Můj věk();
Řídicí panel. WriteLine ("David má {0} let", věk);

Spuštění programu nyní vydává toto:

Ahoj
David má 53 let,

var age = t. Můj věk(); volání metody vrátilo hodnotu 53. Není to nejužitečnější funkce. Užitečnějším příkladem je funkce tabulkového součtu s maticí ints, počáteční index a počet hodnot, které se mají sčítat.

Toto je funkce:

public float Sum (int [] hodnoty, int startindex, int endindex)
{
var celkem = 0;
pro (var index = startindex; index <= endindex; index ++)
{
celkem + = hodnoty [index];
}
návratnost celkem;
}

Zde jsou tři případy použití. Toto je kód, který se přidá do Main () a zavolá, aby se otestovala funkce Sum.

var hodnoty = nová int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Řídicí panel. WriteLine (t. Součet (hodnoty, 0,2)); // Mělo by být 6
Řídicí panel. WriteLine (t. Součet (hodnoty, 0,9)); // by mělo být 55
Řídicí panel. WriteLine (t. Součet (hodnoty, 9,9)); // by mělo být 10, protože 9. hodnota je 10

Pro smyčka sčítá hodnoty v rozsahu startindex do endindex, takže pro startindex = 0 a endindex = 2 je to součet 1 + 2 + 3 = 6. Zatímco pro 9,9, pouze přidá jednu hodnotu [9] = 10.

V rámci funkce je inicializován součet lokálních proměnných na 0 a poté jsou přidány příslušné části hodnot pole.