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
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.