O procedurách a funkcích
Procedura & funkce
Někdy se stane, že musíme udělat některé činnosti v programu vícekrát. Pokud bychom je psali několikrát za sebou, program by se stal nepřehledným, a v případě, že bychom něco chtěli změnit, museli bychom to udělat vícekrát, a to už bychom někde mohli udělat chybu. Za tímto účelem tu máme procedury a funkce.
Rozdíl mezi procedurami a funkcemi
Rozdíl mezi procedurami a funkcemi je malý, ale docela podstatný. Procedury nevrací žádnou hodnotu, zatímco funkce ano, což znamená, že jejich činnost skončí nějakým výsledkem.
Vytvoření procedury
C#
void jmenoProcedury{
prikazy..
}
VB
Sub jmenoProcedury
Prikazy..
End Sub
Je to skoro to samé, jako když vytváříte hlavní proceduru Page_Load, akorát změníte jméno procedury.
Proceduru potom v hlavní proceduře zavoláme podle jejího názvu:
Příklad
C#
void Pozdrav(){
Response.Write(„Nazdar kamaráde!“);
}
void Page_Load(){
Response.Write(„A nyní zavoláme naší proceduru Pozdrav(): „);
Pozdrav(); // nyní jsme zavolali proceduru Pozdrav() => Vypíše se Nazdar kamaráde
}
VB
Sub Pozdrav
Response.Write(„Nazdar kamaráde“)
End Sub
Sub Page_Load
Response.Write(„A nyní zavoláme naší proceduru Pozdrav(): „);
Pozdrav // nyní jsme zavolali proceduru Pozdrav => Vypíše se Nazdar kamaráde
End Sub
Procedury s parametry
Většinou se stane, že činnosti, které chceme provádět uvnitř procedury, nejsou úplně stejné, ale jsou trochu rozdílné. K tomu nám slouží parametry, jimiž lze ovlivňovat chování procedury.
C#
void Pozdrav(string barvaTextu){
Response.Write(„Nazdar kamarade!
“);
}
void Page_Load(){
Pozdrav(„black“);
Pozdrav(„red“);
Pozdrav(„blue“);
Pozdrav(„green“);
}
Vytvořili jsme opět proceduru pozdrav. V závorce jsme vytvořili proměnnou typu string barvaTextu a pak jsme s ní pracovali v proceduře. Při volání procedury jsme do závorky dali řetězec s názvem barvy.
To samé ve VB.NET:
Sub Pozdrav(barvaTextu As String)
Response.Write(„Nazdar kamarade!
“)
End Sub
Sub Page_Load
Pozdrav(„black“)
Pozdrav(„red“)
Pozdrav(„blue“)
Pozdrav(„green“)
End Sub
Samozřejmě můžete v proceduře užít více parametrů. V takovémto případě oddělujete parametry čárkou:
C#
void Pozdrav(string barvaTextu,int velikostTextu){
Response.Write(„Nazdar kamarade!
“);
}
void Page_Load(){
Pozdrav(„black“,5);
Pozdrav(„red“,10);
Pozdrav(„blue“,1);
Pozdrav(„green“,50);
}
VB
Sub Pozdrav(barvaTextu As String,velikostTextu As Integer)
Response.Write(„Nazdar kamarade!
“)
End Sub
Sub Page_Load
Pozdrav(„black“,5)
Pozdrav(„red“,10)
Pozdrav(„blue“,1)
Pozdrav(„green“,50)
End Sub
Funkce:
Jak jsem říkal na začátku, mezi procedurami a funkcemi není skoro žadný rozdíl, proto si teď ukážeme pouze jednoduchý příklad funkce:
C#
string Odkaz(string kam,string text){
string x;
x = " "+text+" ";
return x;
}
void Page_Load(){
Response.Write(Odkaz("www.programujte.com","e-zin programujte")+Odkaz("www.atlas.cz","atlas.cz"));
Response.Write(Odkaz("www.centrum.cz","Centrum.cz")+Odkaz("www.seznam.cz","seznam"));
}
Všiměte si, že když vytváříme funkci Odkaz, už není void, ale string. To z toho důvodu, že funkce vrací hodnotu typu string. Dále je tam důležitý příkaz return, tím definujeme, kterou hodnotu vracíme. V našem případě to je proměnná x. Pokud bychom na příkaz return zapomněli, překladač by nahlásil chybu.
VB
Function Odkaz(kam As String,text As String)As String
Dim x As String
x = " "+text+" "
Return x
End Function
Sub Page_Load
Response.Write(Odkaz("www.programujte.com","e-zin programujte")+Odkaz("www.atlas.cz","atlas.cz"))
Response.Write(Odkaz("www.centrum.cz","Centrum.cz")+Odkaz("www.seznam.cz","seznam"))
End Sub
Ve VB.NET se funkce vytváří pomocí klíčových slov Function a End Function. Stejně jako u C# musíme definovat typ návratové hodnoty (v našem případě string).
To je pro dnešek vše. Příště se podíváme na objekty.