Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.

Podobné prezentace


Prezentace na téma: "C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí."— Transkript prezentace:

1 C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

2 Procedury a funkce - použití Usnadňuje přehlednost kódu Zaručuje snadnější modifikaci Zefektivňuje jak provádění tak psaní zdrojového kódu Správné použití eliminuje výskyt chyb Usnadňuje rozšiřitelnost

3 Co je to metoda ?  C# obecně nerozlišuje procedury a funkce jako např VB.NET (kde function a procedure jsou klíčová slova)  Rozdíl mezi nimi je vlastně pouze formální v tom že návratová hodnota procedury je na rozdíl od funkce VOID (nic)  Metoda může tedy být jak funkce tak procedura  Toto označení je běžné v OOP

4 Procedury  Procedura je vlastně speciální druh funkce – jednodušší  Nevrací žádné hodnoty ( VOID – prázdnota )  Př.: void Pozdrav(){ Console.Write(„Hello !“); } void Page_Load(){ Pozdrav(); // nyní jsme zavolali proceduru Pozdrav() => Vypíše se Hello ! }

5 Procedury s parametry  lze jimi ovlivnit chování procedury public static void Pozdrav(string myStrPozdrav){ Console.Write(myStrPozdrav ); } static void Main() { string myPozdrav; myPozdrav = "Hello"; Pozdrav(myPozdrav); }

6 Funkce  Na rozdíl od procedury vrací nějakou hodnotu  Typ návratové hodnoty je nutné uvést v hlavičce funkce  Př.: static int Secti(int a, int b) { int vysledek = a + b; return vysledek; }

7 Úkol  Vypracujte krátký program který umožní vyhledat z čísel 2 až 1000 všechna prvočísla  Použijte v programu proceduru JePrvocislo, která ověří číslo a vrátí boolean hodnotu

8 Přetěžování metod  Přetěžování znamená, že metoda s jedním názvem se v závislosti na způsobu volání chová různým způsobem.  Základními způsoby přetěžování může být například různé chování v závislosti na typu objektu nad kterým je metoda volána (např.: Vykresli nad objektem kružnice a Vykresli nad objektem čtverec se mohou z důvodu čitelnosti a přehlednosti kódu jmenovat stejně, ale obě funkce vykonají jinou činnost) – tomuto typu přetěžování se budeme věnovat po úvodu do OOP  Druhým typem přetěžování funkcí může být požadavek na rozdílné chování funkce se stejným názvem v závislosti na počtu jejích parametrů.

9 Přetěžování metod v závislosti na počtu parametrů Odhadněte výstup následujícího programu using System; class Overload { public void ovlDemo() { Console.WriteLine(„Bez parametrů"); } // Přetížená ovlDemo pro jeden int parametr. public void ovlDemo(int a) { Console.WriteLine(„Jeden parametr: " + a); } // Overload ovlDemo pro dva int parametry. public int ovlDemo(int a, int b) { Console.WriteLine(„Dva parametry: " + a + " " + b); return a + b; } // Overload ovlDemo pro dva double parametry. public double ovlDemo(double a, double b) { Console.WriteLine(„Dva dbl parametry: " +a + " "+ b); return a + b; } } class MainClass { public static void Main() { Overload ob = new Overload(); int resI; double resD; // volání všech funkcí ovlDemo() ob.ovlDemo(); Console.WriteLine(); ob.ovlDemo(2); Console.WriteLine(); resI = ob.ovlDemo(4, 6); Console.WriteLine(„Výsledek ob.ovlDemo(4, 6): " + resI); Console.WriteLine(); resD = ob.ovlDemo(1.1, 2.32); Console.WriteLine(„Výsledek ob.ovlDemo(1.1, 2.32 ): " + resD); } }

10 Výsledek Bez parametrů Jeden parametr: 2 Dva parametry: 4 6 Výsledek ob.ovlDemo(4, 6): 10 Dva dbl parametry: Výsledek ob.ovlDemo(1.1, 2.32): 3.42

11 Vliv konverzí na přetěžované funkce prohlédněte si následující kód a odhadněte výstup programu using System; class Overload2 { public void f(int x) { Console.WriteLine(„Uvnitř f(int): " + x); } public void f(double x) { Console.WriteLine(„Uvnitř f(double): " + x); } } class MainClass { public static void Main() { Overload2 ob = new Overload2(); int i = 10; double d = 10.1; byte b = 99; short s = 10; float f = 11.5F; ob.f(i); // volání ob.f(int) ob.f(d); // volání ob.f(double) ob.f(b); // volání ob.f(int) -- typová konverze ob.f(s); // volání ob.f(int) -- typová konverze ob.f(f); // volání ob.f(double) -- typová konverze } }

12 Vliv konverzí na přetěžované funkce prohlédněte si následující kód a odhadněte výstup programu using System; class Overload2 { public void f(int x) { Console.WriteLine(„Uvnitř f(int): " + x); } public void f(double x) { Console.WriteLine(„Uvnitř f(double): " + x); } } class MainClass { public static void Main() { Overload2 ob = new Overload2(); int i = 10; double d = 10.1; byte b = 99; short s = 10; float f = 11.5F; ob.f(i); // volání ob.f(int) ob.f(d); // volání ob.f(double) ob.f(b); // volání ob.f(int) -- typová konverze ob.f(s); // volání ob.f(int) -- typová konverze ob.f(f); // volání ob.f(double) -- typová konverze } } Uvnitř f(int): 10 Uvnitř f(double): 10.1 Uvnitř f(int): 99 Uvnitř f(int): 10 Uvnitř f(double): 11.5

13 13 Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… Seriály o programování v jazyce C# :


Stáhnout ppt "C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí."

Podobné prezentace


Reklamy Google