110 likes | 277 Views
Jacek Matulewski e-mail: jacek@fizyka.umk.pl WWW: http://www.fizyka.umk.pl/~jacek/dydaktyka. Programowanie Windows na przykładzie C# część 1. Kurs realizowany jest w ramach Microsoft IT Academy. wersja 18-04-2009. Rynek (IDE, języki, platformy).
E N D
Jacek Matulewski e-mail: jacek@fizyka.umk.pl WWW: http://www.fizyka.umk.pl/~jacek/dydaktyka Programowanie Windowsna przykładzie C#część 1 Kurs realizowany jest w ramachMicrosoft IT Academy wersja 18-04-2009
Rynek (IDE, języki, platformy) • BorlandDeveloper Studio (Delphi, Delphi.NET, C++Builder, PHP) • Visual Studio (C++, C#, VB, F#) • Windows: Win32, Win64, .NET, XNA, VJM, Cygwin, … • Dlaczego warto uczyć się C# i platformy .NET: Windows Forms, XAML( WPF/XBAB/Silverlight), XNA, ASP.NET/ADO.NET • Przenośność (.NET/Mono, platformy XNA)
.NET Framework • Wersje 1.0, 1.1, 2.0 + 3.0 + 3.5, 4.0 • .NET Compact Framework • XNA • Czym jest ASP.NET, ADO.NET, LINQ, WPF, itd.? • Czy .NET jest popularne?
Najprostszy program C# using System; namespace PrzestrzeńNazw { class Klasa { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadLine(); } } } Nazwa C# = CsharpPodobieństwa do Pascala/Delphi – Anders Hejlsberg Kompilator w linii komend: cscProgram.cs (ścieżka: c:\Windows\Microsoft.NET\Framework\v2.0.50727)
Visual Studio (IDE) • Dostępne projekty. Pliki projektu • IntelliSense • Podokna VS, wbudowany debuger, edytor,kontrolki, własności/zdarzenia • Zdarzeniowy model aplikacji • Demo: Projekt aplikacji konsolowej • Demo: Projekt aplikacji Windows Forms • Demo: Projekt aplikacji XNA • Komunikaty - zdarzenia
Zmienne i pola • Nie ma typów prostych (wbudowanych w kompilator) • Wszystko jest obiektem • Klasa vs. struktura • Struktury: int, long, float, double, Color • Klasy: tablice, listy, kolejki, itp. • int i=0; double d=0.0; float f=0f; Color k1=Color.Red; Color k2=Color.FromArgb(..)
Typy • Biblioteki platformy .NET(przestrzeń nazw System i jej podprzestrzenie) • Kontrolki (WF, WPF), struktury danych, algorytmy, klasy umożliwiające do baz danych • Dodatkowe biblioteki (przestrzeń Microsoft) • Możliwość korzystania z kontrolek ActiveX • Zgodność bibliotek ze starszymi wersjami
Typy Typy numeryczne i łańcuchy byte od 0 do 255 1 bajt sbyte od -128 do 127 1 bajt short od -32768 do 32767 2 bajty ushort od 0 do 65535 2 bajty int od -2147483648 do 2147483647 4 bajty uint od 0 do 4294967295 4 bajty long od -9223372036854775808 do 9223372036854775807 8 bajtów ulong od 0 do 18446744073709551615 8 bajów booltrue lub false 1 bajt float liczby rzeczywiste (pojedyncza precyzja) 4 bajty double liczby rzeczywiste (podwójna precyzja) 8 bajtów decimal 28 cyfr znaczących 12 bajtów object typ bazowy dla wszystkich innych typów char 0 and 65535 (Unicody) 2 bajty string łańcuch, operatory, klasa ale zachowuje się jak typ wartościowy StringBuilder dynamiczny łańcuch
Składnia • C++ – Java – C# - wspólna rodzina języków • Demo: operatory arytmetyczne, warunkowy • Demo: instr. sterujące (if, if..else, switch) • Demo: pętle (for, foreach, while, do..while)Instrukcje: break, continue, goto • Demo: wyjątki try..catch..catch..finalize • Demo: tablice, sortowanie (Array.Sort) • Metody (funkcje składowe), argumenty (ref, out)
Składnia - operatory Arytmetyczne : + - * / % Łączenie łańcuchów: + Relacyjne: == != < > <= >= Przesunięcia: << >> Logiczne i bitowe: & | ^ ~ ! && || true false Inkrementacji i dekrementacji: ++ -- Przypisania: = += -= *= /= %= &= |= ^= <<= >>= Plus (minus) jednoargumentowy: + - Dostęp do składowej: . Wyrażenie warunkowe: ?: Tworzenie obiektu: new Rzutowania: () Kontrola przepełnienia: checked unchecked Indeksowania: [] Informacje o typie: as is sizeof typeof Operacje na wskaźnikach (adresach): * -> [] &