Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilJosef Štěpánek
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: 1.1 2.32 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,… www.wikipedia.com Seriály o programování v jazyce C# : www.živě.cz www.java2s.com www.functionx.com www.csharp-station.com www.msdn.com www.bytes.com www.c-sharpcorner.com
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.