Metodyka programowania. Podstawy C#

Podobne dokumenty
Metodyka programowania. Podstawy C#

Podstawy programowania. Wprowadzenie

Wykład 2 Składnia języka C# (cz. 1)

Microsoft IT Academy kurs programowania

MATERIAŁY DO ZAJĘĆ II

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Metodyka programowania

Podstawy programowania skrót z wykładów:

Programowanie obiektowe

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie Komputerów

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

1 Podstawy c++ w pigułce.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie Komputerów

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Wykład 8: klasy cz. 4

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Język ludzki kod maszynowy

Klasy cd. Struktury Interfejsy Wyjątki

Podstawowe części projektu w Javie

Materiały do zajęć VII

PARADYGMATY PROGRAMOWANIA Wykład 4

Java Podstawy. Michał Bereta

Język C++ wykład VIII

1 Podstawy c++ w pigułce.

Podstawy Programowania Podstawowa składnia języka C++

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

I - Microsoft Visual Studio C++

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C# mgr in. Dariusz Ku. p. 119A

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Wykład 3 Składnia języka C# (cz. 2)

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Platformy Programistyczne Podstawy języka Java

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Część 4 życie programu

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Wykład 2: Podstawy Języka

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Programowanie obiektowe

Język C++ zajęcia nr 2

Wyjątki (exceptions)

Programowanie RAD Delphi

TEMAT : KLASY DZIEDZICZENIE

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Języki programowania wysokiego poziomu. PHP cz.2.

2 Przygotował: mgr inż. Maciej Lasota

Algorytmika i Programowanie VBA 1 - podstawy

Zmienne, stałe i operatory

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Szablony klas, zastosowanie szablonów w programach

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Delphi Laboratorium 3

PARADYGMATY PROGRAMOWANIA Wykład 3

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Programowanie obiektowe

Podstawy i języki programowania

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Laboratorium 1 - Programowanie proceduralne i obiektowe

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Definiowanie własnych klas

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie Obiektowe Ćwiczenie 4

Podstawy programowania. Podstawy C#

Programowanie obiektowe

Wykład 5 Okna MDI i SDI, dziedziczenie

Podstawy Programowania C++

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

ROZDZIAŁ 2. Operatory

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki i paradygmaty programowania - 1

Multimedia JAVA. Historia

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Transkrypt:

Metodyka programowania Podstawy C#

Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas Programy mogą być pisane w jednym z wielu języków (C++, C#, F#, J#, Delphi, Visual Basic) Umożliwia uruchamianie programów na serwerze IIS (Internet Information Services) oraz na systemach z implementacją.net Zgłoszony standard EMCA, powstają niezależne wdrożenia, np. Mono (UNIX, Linux, Android, )

Platforma.NET Struktura.NET Biblioteki Windows.Forms WebServices ADO.NET ASP.NET XML, SQL BCL (Base Class Library) Środowisko uruchomieniowe CLR (Common Language Runtime)

Platforma.NET Środowisko uruchomieniowe CLI C# J# C++ Kod IL Biblioteki.NET Obsługa wykonywania Kompilator JIT (Just in Time) Bezpieczeństwo Zarządzanie pamięcią Kod maszynowy Procesor

Platforma.NET Wersje.NET 1.0 (2002 r.) 2.0 (2005 r.), Windows Server 2003 3.0 (2006 r.), Windows Server 2008, Windows Vista 3.5 (2007 r.), Windows 7 4.0 (2010 r.) 4.5 (2012 r.), Windows Server 8, Windows 8

C# Najważniejsze cechy C# Obiektowość kod programu jest zbiorem klas; typy proste (int, double, itd.) również są strukturami Odśmiecanie pamięci zarządzaniem pamięcią zajmuje się środowisko uruchomieniowe Wiele nowoczesnych rozwiązań właściwości, indeksery, delegacje, zdarzenia, refleksje, (wiele zapożyczonych z języka Java) Bogate biblioteki klas dla aplikacji konsolowych (System), okienkowych (Windows.Forms), bazodanowych (ADO.NET), sieciowych (System.Net), w architekturze rozproszonej (WebServices), dynamicznych aplikacji internetowych (ASP.NET) oraz multimediów (Silverlight).

C# Wspólny system typów CTS Obiekt Klasa Typy proste Interfejs Typy wyliczeniowe Tablica Struktury Typy referencyjne Typy wartościowe

C# Typy wartościowe Deklaracja deklarowany (tworzony) jest obiekt Int32 x; x = 7; Przypisanie obiekt jest kopiowany Int32 a, b; a = 13; b = a; (są dwa obiekty Int32, oba zawierają wartość 13)

C# Typy referencyjne Deklaracja deklarowana (tworzona) jest referencja, obiekt nie istnieje dopóki nie zostanie utworzony operatorem new Button b1; b1 = new Button(); Przypisanie kopiowany jest nie obiekt, tylko referencja do niego Button b2; b2 = b1; (jest jeden obiekt Button, obie referencje wskazują na niego)

Typy proste C# Typy proste: Boolean (alias: bool) wartości logiczne true i false Int32 (alias: int) wartości całkowite ze znakiem: SByte, Int16, Int32, Int64 bez znaku: Byte, UInt16, UInt32, UInt64 Double (alias: double) Single (alias: single, float) Char (alias: char) znak Unicode, 16-bitowy String (alias: string)

Typy proste C# Typy proste są strukturami; dostarczają wiele użytecznych metod: ToString konwersja na łańcuch zanków Parse konwersja z łańcucha znaków TryParse jak Parse, ale z obsługą błędów Int32 a; a = Int32.Parse("32"); Double x, y; x = Double.Parse("4,1"); y = 1.25; Boolean ok; ok = Int32.TryParse("abc", a);

Typy proste C# Metody typów prostych - Int32 Statyczne (klasy) Int32 MinValue Int32 MaxValue Int32 Parse (String s) Boolean TryParse (String s, Int32 v) Instancji Int32 CompareTo (Int32 v) Boolean Equals (Int32 v) String ToString () String ToString (String format)

Typy proste C# Metody typów prostych - Double Statyczne (klasy) Double MinValue Double MaxValue Double NaN Double Epsilon Double NegativeInfinity Double PositiveInfinity Double Parse (String s) Boolean TryParse (String s, Double v) Instancji Int32 CompareTo Double v) Boolean Equals Double v) Boolean IsNaN () Boolean IsInfinity () String ToString () String ToString (String format)

Typy proste C# Konwersje typów prostych Konwersja automatyczna jest możliwa, gdy nie ma ryzyka utraty wartości lub pogorszenia precyzji: Int32 a; Int16 b = 77; a = b; w przeciwnym razie jest błędem składniowym: b = a; // błąd: Int16 <- Int32 Single y; y = 1.25; // błąd: Single <- Double Można stosować konwersje wymuszone: b = (Int16) a;

Identyfikatory Nazwy, które programista nadaje zmiennym, funkcjom, klasom, itd.: - litery a..z, A..Z, cyfry 0..9 oraz znak podkreślenia "_" można używać znaków diakrytycznych (ą, ę, ) - nie może zaczynać się od cyfry - małe i wielkie litery są rozróżniane wsp1, wsp_1, suma_liczb, SumaLiczb, sumaliczb nazwa, Nazwa, NAZWA Najbardziej popularna jest notacja Camel (wielbłądzia): tojestprzykładnotacjicamel

Literały Napis reprezentujący wartość, która może być zapisana w zmiennej lub użyta w wyrażeniu. Każda stała ma ściśle określony typ (tj. najprostszy typ, w jakim stałą można by zapisać): 100 typ całkowity, int 17.5 typ rzeczywisty, double 1.75e01 jw. "hello" łańcuch znaków, string 'A' typ znakowy, char

Operatory hierarchia i wiązanie przyrostkowe ++ -- lewe przedrostkowe ++ -- prawe jednoargumentowe + - prawe dwuargumentowe * / % lewe + - lewe przesunięcia << >> lewe relacji < <= >= > lewe równości ==!= lewe logiczne && lewe lewe warunkowy?: prawe przypisania = += -= *= /= prawe

Operatory Hierarchia operatorów Określona dla danego języka programowania kolejność operatorów, uwzględniana przy obliczaniu wyrażeń. Np. w wyrażeniu y = a + b * c; najpierw wykonywane jest mnożenie, później dodawanie i dopiero na końcu przypisanie (ponieważ operator mnożenia stoi w hierarchii wyżej, niż operator dodawania, a ten wyżej, niż operator przypisania). Aby zmienić kolejność wykonywania operatorów, należy stosować nawiasy, np.: y = (a + b) * c;

Operatory Wiązanie operatorów Określona dla danego języka programowania kolejność wykonywania operatorów o tej samej hierarchii. Większość operatorów ma wiązanie lewe (tzn. wykonywane są od lewej do prawej). Nieliczne, w tym operatory przypisania, maja wiązanie prawe. Np. w wyrażeniu y = a / b * c; najpierw jest wykonywane dzielenie, a dopiero potem mnożenie czyli y jest obliczane jako (a/b)*c; Aby zmienić kolejność wykonywania operatorów, należy stosować nawiasy, np.: y = a / (b * c);

Instrukcje Instrukcja pusta ; Stosowana wówczas, gdy składnia wymaga podania instrukcji, ale nic nie ma być wykonane Na ogół użycie instrukcji pustej jest błędem "błąd nadgorliwości": if (x==0); y = 1; instrukcja y=1; jest wykonywana zawsze, niezależnie od warunku, ponieważ z warunkiem związana jest instrukcja pusta (średnik po nawiasie)

Instrukcje Instrukcje: Pusta Grupująca (blok instrukcji) Warunkowa if, if-else Iteracyjne for, while, do-while, foreach

Instrukcje Instrukcja grupująca (blok instrukcji) { } // dowolna ilość instrukcji Stosowana wówczas, gdy składnia pozwala na podanie jednej instrukcji, a potrzeba użyć więcej.

Instrukcje Instrukcja wyrażeniowa wyrażenie ; Dowolne wyrażenie (tj. poprawna składniowo kombinacja nazw zmiennych, operatorów oraz stałych), zakończone średnikiem.

Instrukcje Instrukcja warunkowa if (warunek) instrukcja "warunek" dowolne wyrażenie o rezultacie całkowitym, "instrukcja" dowolna instrukcja (w tym wyrażeniowa, grupująca, warunkowa,...) Działanie: jeżeli wyrażenie "warunek" daje rezultat true, "instrukcja" jest wykonywana, w przeciwnym przypadku - pomijana

Instrukcje Instrukcja warunkowa if (warunek) instrukcja1 else instrukcja2 Jeżeli wyrażenie "warunek" daje rezultat true, wykonywana jest "instrukcja1", w przeciwnym przypadku - "instrukcja2"

Instrukcje Instrukcje iteracyjne for (inicjalizacja; warunek; inkrementacja) instrukcja Wykonywane jest wyrażenie "inicjalizacja" oraz sprawdzany "warunek"; Jeżeli "warunek" daje rezultat true, to wykonywana jest "instrukcja", a następnie "inkrementacja", po czym czynności są powtarzane, począwszy od "warunku"; Jeżeli "warunek" daje wartość false, wykonywanie instrukcji for zostaje zakończone;

Instrukcje Instrukcje iteracyjne while (warunek) instrukcja Działanie: wykonywany jest "warunek"jeżeli "warunek" daje rezultat niezerowy, wykonywana jest "instrukcja"; jeżeli "warunek" daje wartość zero, wykonywanie instrukcji while zostaje zakończone; następnie czynności są powtarzane, począwszy od "warunku".

Obsługa wyjątków Wyjątek programowy Wyjątek (exception) - mechanizm obsługi sytuacji wyjątkowych, przede wszystkim błędów Wyjątek jest rzucany (throw), aby zgłosić sytuację wyjątkową Wyjatek jest przechwytywany (catch), aby obsłużyć tę sytuację; Jeżeli wyjątek nie zostanie przechwycony, aplikacja zostaje awaryjnie zatrzymana, o czym informuje komunikat:

Obsługa wyjątków Przykład wyjątku programowego Przykład: program wczytuje ciąg znaków podany przez użytkownika po czym próbuje przekształcić go na liczbę przy pomocy Parse; metoda Parse nie może przekształcić łańcucha znaków (np. s="1#3") na wartość typu całkowitego i dlatego rzuca wyjątek Int32 n = 0; String s; s = Console.ReadLine(); // tu może pojawić się wyjątek: n = Int32.Parse(s);

Obsługa wyjątków Typy wyjątków programowych Rzuceniu wyjątku towarzyszy utworzenie obiektu wyjątku. Typ wyjątku wynika z rodzaju błędu, natomiast obiekt wyjątku może zawierać dodatkowe, szczegółowe informacje o błędzie Np. metoda Parse może rzucać trzy typy wyjątków: ArgumentNullExceptions FormatException OverflowException

Obsługa wyjątków Obsługa wyjątków Do obsługi wyjątków służy instrukcja try-catch W bloku "try" należy umieścić instrukcje potencjalnie "niebezpieczne" (mogące zakończyć się błędem) oraz instrukcje od nich zależne W bloku (blokach) "catch" należy umieścić instrukcje obsługi błędu (błędów) Można napisać kilka bloków "catch" oddzielnie dla każdego typu wyjątku, albo jeden wspólny Jeżeli jedna z instrukcji bloku "try" rzuci wyjątek, to wykonywanie tego bloku zostaje przerwane, po czym są wykonywane instrukcje bloku "catch"; Jeżeli w bloku "try" wyjątek nie wystąpi, to blok "catch" nie jest wykonywany

Obsługa wyjątków Obsługa wyjątków Najprostszy wariant jeden blok "catch" dla wszystkich typów wyjątków: try { // instrukcje mogące rzucić wyjątek // instrukcje zależne od w/w } catch { // obsługa wszelkich możliwych wyjątków }

Obsługa wyjątków Obsługa wyjątków Trudniejszy wariant bloki "catch" dla różnych wyjątków: try { // instrukcje mogące rzucić wyjątek // instrukcje zależne od w/w } catch (FormatException e) { // obsługa wyjątku } catch (OverflowException e) { // obsługa wyjątku }

Typy wyliczeniowe C# Typy wyliczeniowe Służą do definiowania zbioru dopuszczalnych wartości enum Color { Red, Green, Blue } Color color = Color.Red; Dzięki ścisłej kontroli typów w C# gwarantują używanie zawsze poprawnych wartości

Tablice C# Tablice są typami referencyjnymi Po deklaracji musi następować utworzenie tablicy: Int32[] ti; ti = new Int32[3]; Utworzeniu może towarzyszyć nadanie wartości: Double[] td; td = new Double[3] { 1.0, 2.0, 3.5 }; Dostęp do elementów tablicy umożliwia indeksowanie Indeksy elementów: od 0 do rozmiar-1 for (i=0; i<3; i++) s += td[i];

Klasy C# Klasa definicja typu (definicja obiektu) Obiekt instancja klasy; zmienna, której definicją jest klasa Pole element składowe klasy (obiektu), służący do przechowywania danych może być typu wartościowego lub referencyjnego

Klasy C# Metoda funkcja będąca elementem składowym klasy mogą być przeciążone istnieją funkcje o specjalnym przeznaczeniu: konstruktor (można przeciążać) i destruktor Właściwość połączenie pola i dwóch metod (służących do odczytu i zmiany wartości pola)

Klasy C# Pola (inaczej: atrybuty) klasy Składnia: [Modyfikator] typ nazwa; [Modyfikator] typ nazwa = wartość; - Pola statyczne należą do klasy (a nie do instancji); pola prywatne są dostępne tylko dla metod danej klasy, natomiast nie są dostępne spoza tej klasy; - Pola typu referencyjnego należy pamiętać o konieczności utworzenia obiektów operatorem new Przykłady static Double InchCmRatio = 2.54; private Int32 x = 0;

Klasy C# Metody (inaczej: operacje) klasy Składnia: [Modyfikator] typ nazwa (argumenty) { // ciało metody } - Typ rezultatu dowolny typ C# lub void (ang. brak); Metoda powinna dostarczać rezultat przy pomocy instrukcji return (nie dotyczy funkcji z typem rezultatu void) - Na ogół metody wykonują operacje w obrębie własnej klasy (np. zmieniają wartość pól obiektu) Przykłady public Double ToCm() { return inches * InchCmRatio; }

Klasy C# Modyfikatory dostępu klasy i elementów składowych public - element dostępny bez ograniczeń, internal - dostępny tylko wewnątrz danego zestawu (ang. assembly), np. tylko dla innych klas tego samego projektu private (domyślny!) - niedostępny z zewnątrz static - element należący do klasy a nie do instancji (obiektu) - klasa, dla której nie można utworzyć obiektów const - element, którego wartość jest nadawana w deklaracji i nie może być później zmieniona

Klasy C# Przykład klasy elementy statyczne public static class Inches { public static Double InchCmRatio = 2.54; public static Double InchToCm(Double inch) { return inch * InchCmRatio; } }

Klasy C# Przykład klasy public static class Inches { } [ ] - Klasa jest publiczna (tj. dostępna bez ograniczeń); - Klasa jest statyczna (tj. nie można utworzyć obiektu klasy, podobnie jak klas Console czy Math)

Klasy C# Przykład klasy Przykład użycia Double lencm = Inches.InchToCm (10); Double leninch = lencm / Inches.InchCmRatio;

Klasy C# Przykład klasy public class Inch { private const Double InchCmRatio = 2.54; private Double val; public Inch(Double v) { val = v; } public Double ToCm() { return val * InchCmRatio; } }

Klasy C# Przykład klasy public class Inch { } [ ] - Klasa jest publiczna (tj. dostępna bez ograniczeń; - Nazwa klasy (Inch) funkcjonuje jak nazwa typu zmiennych, podobnie jak np. Double, jednak jest to typ referencyjny - obiekty trzeba tworzyć operatorem new

Klasy C# Przykład klasy Pole (prywatne) private Double val; [ ] Pole nie jest dostępne z zewnątrz (tj. spoza klasy), ale może być modyfikowane oraz odczytywane przez medody należące do klasy; Pole nie jest statyczne, zatem należy do obiektów (instancji), a nie do klasy jako całości Wartość pól powinna być podana przy ich deklaracji lub nadawana przez konstruktor klasy

Klasy C# Przykład klasy Konstruktor metoda używana do tworzenia obiektu (podczas działania operatora new) public Inch(Double v) { } [ ] val = v; Przykład użycia Każda klasa definiuje typ referencyjny użycie new jest konieczne, inaczej istnieje tylko referencja, a nie obiekt! Inch inch; inch = new Inch(3);

Klasy C# Przykład klasy Metoda (publiczna) public Double ToCm() { } [ ] return inches * InchCmRatio; Przykład użycia Double lencm; Inch inch new Inch(3); lencm = inch.tocm();

Klasy C# Przykład klasy public class Inch { private const Double InchCmRatio = 2.54; private Double val; public Inch(Double v) { val = v; } public Double Cm { get { return ToCm(); } set { val = value / InchCmRatio; } } }

Klasy C# Przykład klasy Właściwość (publiczna) public Double Cm { get { return val * InchCmRatio } set { val = value / InchCmRatio; } } Przykład użycia (właściwości używa się jak pola, choć kryją się za nim operacje, zdefiniowane w sekcjach get oraz set definicji) Inch inch = new Inch(3); Double lencm; lencm = inch.cm; inch.cm = 15;

Aplikacje konsolowe C# Aplikacje konsolowe Środowisko MSVS umożliwia tworzenie aplikacji konsolowych - uruchamianych w klasycznym, czarnym oknie konsoli Kreator MSVS tworzy projekt zawierający: - włączenie typowych bibliotek - przestrzeń nazw (można w niej umieszczać własne klasy) - klasę Program - statyczną metodę Main

Aplikacje konsolowe C# Funkcja główna programu Każdy program musi zawierać funkcję główną (jak w C++); wykonanie programu polega na wykonaniu funkcji głównej.

Aplikacje konsolowe C# Przydatne klasy C# Math - klasa definiująca statyczne metody matematyczne, jak pierwiastek, potęga, logarytm, sinus itd. itp Double Sqrt (Double x); Double Pow (Double b, Double e); - oraz dwie stałe: liczby Π oraz e public const Double PI = 3.14159265358979; public const Double e = 2.718281828459045;

Aplikacje konsolowe C# Przydatne klasy C# Console - klasa definiująca szereg statycznych metod do obsługi konsoli (odpowiednik strumieni cin oraz cout w C++) - najważniejsze metody: void WriteLine (String line); String ReadLine (); ConsoleKeyInfo ReadKey (Boolean noecho);

Aplikacje konsolowe C# Metody klasy Console WriteLine wyświetla tekst i przechodzi do nowej linii - wyświetlenie łańcucha znaków Console.WriteLine ("Hello"); - wyświetlenie wartości zmiennej Console.WriteLine (x.tostring()); - wyświetlenie kilku informacji Console.WriteLine ("Wynik = " + x); Console.WriteLine ( String.Format("Suma {0} i {1} = {2}",a,b,s) );

Aplikacje konsolowe C# Metody klasy Console ReadLine wczytuje tekst wpisany z klawiatury (do naciśnięcia <Enter>) - wczytanie łańcucha znaków i konwersja na liczbę String ln; Double x; ln = Console.ReadLine (); x = Double.Parse(ln); - jw., ale z wykrywaniem błędów Boolean ok; ok = Double.TryParse(ln, out x);

Aplikacje konsolowe C# Przykład aplikacji konsolowej C#