Presentation laddar. Vänta.

Presentation laddar. Vänta.

Programmering i C# 2. Inledande detaljer. Programmering i C# - Kapitel 2 2 Syntax Satser avslutas med semikolon Raddelning saknar oftast betydelse Sats.

Liknande presentationer


En presentation över ämnet: "Programmering i C# 2. Inledande detaljer. Programmering i C# - Kapitel 2 2 Syntax Satser avslutas med semikolon Raddelning saknar oftast betydelse Sats."— Presentationens avskrift:

1 Programmering i C# 2. Inledande detaljer

2 Programmering i C# - Kapitel 2 2 Syntax Satser avslutas med semikolon Raddelning saknar oftast betydelse Sats kan ersättas av block Flera satser inom klammerparenteser Variabler definieras med typ namn = initialvärde; Kommentarer med /* */ eller // eller /// /// beskrivs senare

3 Programmering i C# - Kapitel IO och strängar Utmatning till terminal med Console.WriteLine(…) Parametern kan vara valfri typ – för de inbyggda skrivs värde, för många andra typer skrivs ledtext och värden, för övriga skrivs typnamn Console.WriteLine(”Hello World”); int x = 100; Console.WriteLine(x);

4 Programmering i C# - Kapitel 2 4 Formaterad utmatning Värden kan läggas in i ledtext Formatparametrarna kan också innehålla koder för styrning av utmatningsformat int x = 100; double y = 123.5; Console.WriteLine(”Värdet i x är {0}, och i y {1}”, x, y);

5 Programmering i C# - Kapitel 2 5 Object.ToString() Basklassen Object har metoden ToString Omdefinierad i åtskilliga typer för utskrift av objektets tillstånd Klassen String har plusoperator Console.WriteLine(”Värdet i x är ” + x.ToString() + ” och i y ” + y.ToString());

6 Programmering i C# - Kapitel 2 6 Strängar Klassen String motsvarar C# string Immutable – alla metoder returnerar nytt objekt Innehåller teckenvektor i Unicode Literalsträng har typen string Syntaxfel att skapa objekt med new anmärkningsvärt undantag

7 Programmering i C# - Kapitel 2 7 Inläsning Console.ReadLine() returnerar en string Strängen parsas med Convert.ToXXX(s) eller med måltypens XXX.Parse(s) XXX är måltypen, s är strängen Parsingfel ger undantag! Inte ens ett extra blanktecken…

8 Programmering i C# - Kapitel 2 8 Exempel terminal-IO static void Main() { Console.Write(”Skriv in ett heltal: ”); string s = Console.ReadLine(); int left = Convert.ToInt32(s); Console.Write(”Skriv ett till ”); s = Console.ReadLine(); int right = Convert.ToInt32(s); Console.WriteLine(”{0} + {1} = {2}”, left, right, left + right); }

9 Programmering i C# - Kapitel Main-metoden Programmets startpunkt Ingår i valfri klass Statisk, valfri synlighet Får finnas flera! Kompilatorflagga anger då vilken som gäller Ingen parameter eller en string[] Returtyp void eller int

10 Programmering i C# - Kapitel Typomvandlingar För inbyggda structtyper implicit i alla ofarliga riktningar int till long, int till double, etc int var = ; byte b = var; // kompileringsfel long l = var; // OK double d = var; // OK bool b = var; // ingen typomvandling till bool!

11 Programmering i C# - Kapitel 2 11 Explicit typomvandling Explicit med eller utan övervakning vid exekvering Enligt kompilatorflagga Med checked/unchecked byte b = (byte) var; // var är en int int var = ; checked (byte b = (byte) var); // undantag genereras!

12 Programmering i C# - Kapitel 2 12 Up/downcast och boxing Basklassreferens kan referera till härlett objekt enligt OO-lagarna och CTS Härledd referens kan aldrig tilldelas basklassobjekt Alla typer härleds från Object Objectreferens bör kunna tilldelas struct! Sker med ”boxing” och föklaras senare

13 Programmering i C# - Kapitel Operatorer Operatorer är statiska metoder som anropas med annan syntax operator operand Ger naturligare syntax i klientkod Används mycket flitigt i klassbiblioteket Uppsättningen operatorer definierat i C# Men inte deras logik

14 Programmering i C# - Kapitel 2 14 Operatorer Aritmetiska + - * / % Beräkningar på heltal och flyttal Logiska && || ! Returnerar true eller false Jämförande >= == != Returnerar true eller false

15 Programmering i C# - Kapitel 2 15 Operatorer forts. Bitvisa & | ^ ~ > Används typiskt med uint som bitmönster Typhantering () is as typeof Typkontroll och säker typomvandling Övriga. = () [] new ?:

16 Programmering i C# - Kapitel 2 16 Prioritet Ordningen i anropen kan vara kritisk Förtydliga med parenteser! int x = 5, y = 3, z = 1; int sum1 = x * y + z; // 16 int sum2 = x * (y + z); // 20 bool a = false, b = false, c = false; if (a && b == c)... // false if ((a && b) == c)... // true

17 Programmering i C# - Kapitel 2 17 Associativitet Alla binära operatorer utom tilldelning exekverar vänster till höger Tilldelning sker höger till vänster

18 Programmering i C# - Kapitel Vektorer Enbart språksyntax som förenklar och döljer användande av System.Array int[] vec = new int[100]; int[] vec = new int[5] { 1, 2, 3, 4, 5 }; vec[3] = 100; // första satsen ekvivalent med: Array vec = Array.CreateInstance(typeof(int), 100);

19 Programmering i C# - Kapitel 2 19 Arraymetoder Åtskilliga metoder i Array Vissa statiska, andra instansmetoder vec.Length // antal element (i alla dimensioner) vec.GetLength(0) // element i första dimensionen Array.IndexOf(vec, 5) // söker första element med // värdet 5 Array.Sort(vec); // sorterar elementen

20 Programmering i C# - Kapitel 2 20 Flerdimensionell vektor int[,] matrix = new int[5, 10]; for(int dim = 0; dim < matrix.GetLength(0); dim++) for(int el = 0; el < matrix.GetLength(dim); el++) Console.WriteLine(matrix[dim, el]);

21 Programmering i C# - Kapitel Uttryck och satser Villkorsuttryck alltid av typen bool if (x < 0) {... } else if (x < 10) // mellan 0 och 9 {... } else if (x < 20) // mellan 10 och 19 {... } else // >= 20 {... }

22 Programmering i C# - Kapitel 2 22 Switch switch kan ersätta if-else med flera grenar switch (x) { case 1 : Console.WriteLine(”Ett”); break; case 2 : Console.WriteLine(”Två”); break;... default: Console.WriteLine(”Stort”); break; }

23 Programmering i C# - Kapitel 2 23 Switch forts. switch (str) { case ”Anders” : case ”Bertil” : case ”Cecilia”: Console.WriteLine(”ABC”); break; case ”David” : Console.WriteLine(”David och ”); goto case ”Erik”; case ”Erik” :Console.WriteLine(”Erik”); break; }

24 Programmering i C# - Kapitel 2 24 While och do-while Enklaste iteration Villkoret först eller sist while (TestMethod(x)) { … } do { … } while (TestMethod(x));

25 Programmering i C# - Kapitel 2 25 For Vanligt är att indexvariabel räknar varv Kan göras med while, bättre med for Villkoret har default värdet true for (int i = 0; i < 100; i++) { … }

26 Programmering i C# - Kapitel 2 26 Foreach Mycket enkel och säker Endast för traversering av samlingar Förutsätter implementation av vissa interface string[] names = { ”Anna”, ”Britta”, ”Cecilia” }; foreach (string s in names) { Console.WriteLine(s); }

27 Programmering i C# - Kapitel 2 27 Break och continue break avslutar iterationen continue avslutar pågående varv och påbörjar nästa Gäller närmast omslutande while, do-while, for och foreach while (true) { if (…) break; }

28 Programmering i C# - Kapitel XML-kommentarer Kommentarer efter /// Placeras direkt före typdeklaration eller medlem Rekommenderade XML-taggar finns Exempel: … Verktyg kan generera dokumentation

29 Programmering i C# - Kapitel 2 29 XML-kommentarer exempel Standardbiblioteket är dokumenterat i XML /// This method changes the points location /// to the given coordinates. /// xor is the new x-coordinate /// yor is the new y-coordinate /// void public void Move(int xor, int yor) {... }


Ladda ner ppt "Programmering i C# 2. Inledande detaljer. Programmering i C# - Kapitel 2 2 Syntax Satser avslutas med semikolon Raddelning saknar oftast betydelse Sats."

Liknande presentationer


Google-annonser