160 likes | 283 Views
C# Podstawy Cz. 2. Krzysztof Fediuk krzysiek.fediuk@gmail.com. Zaczynamy. Sprawdzian Encje w C# TaskManager. Na start. using System; using System.Collections.Generic ; using System.Linq ; using System.Text ; namespace ConsoleApplication1 { class Program {
E N D
C#PodstawyCz. 2 Krzysztof Fediuk krzysiek.fediuk@gmail.com
Zaczynamy • Sprawdzian • Encje w C# • TaskManager
Na start using System; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespace ConsoleApplication1 { classProgram { staticvoidMain(string[] args) { } } }
Przestrzeń nazw/Paczka • Powinna odzwierciedlać przeznaczenie • Lub grupę powiązanych logicznie elementów namespace<Pełna.Nazwa.Oddzielona.Kropkami> namespace ConsoleApplication1.Main
Przestrzeń nazw/paczka - użycie • Deklarujemy używanie typów • Można deklarować aliasy – w razie konfliktów using <namespace_name>; using<typename> = <namespace_name>.<type>; usingSystem.Collections.Generic; using File = TaskManager.CommonUtils.File;
Klasa • Podstawowa jednostka obiektowości • Powinna się znajdować w namespace • Można ponownie wykorzystać – dziedziczenie class<nazwa_klasy> classProgram classGenericList
Pola • Przechowywanie wartości • Powinny być prywatne <kwalifikator> <nazwa_typu> <nazwa_zmiennej>; intala; string ola; WindowmainWindow,secondaryWindow; doublew = 0.0;
Metody • Nazywamy z dużej litery <kwalifikator> <zwracana_wartość> <nazwa_metody>(<parametry>) public staticvoidMain(string[] args) privatedoubleComputeValue(intargValue)
Properties (właściwości) • Zachowanie podobne do pól • Nazewnictwo metod • Enkapsulacja danych <nazwa_typu> <nazwa_zmiennej>{ get{…} set{…}} publicintLength { get{ return _length;} set { if (value > 0) _length = value; }
Eventy • Delegaty • Programowanie zdarzeniowe event<nazwa_typu> <nazwa_zmiennej> eventEventHandlerNameChanged; NameChanged += <delegat>; NameChanged();
Wyjątki • Klasa bazowa Exception • try … catch … finally DbConnection.Open(); try { //… thrownewException(); } catch (Exception e) { Log(e);} finally { DbConnection.Close();}
Pozostałe struktury • Interfejs • Tylko deklaracje metod, propertisów i eventów • Enum • Wartości poprzedzane nazwą typu • Struktura • Kopiowana przez wartość interfaceIFile{} interfaceSerializable{} enumDaysOfWeek { Monday,…} structPoint { doublexCoordinate; doubleyCoordinate;}
Dziedziczenie • Struktura drzewa • Pień – klasy • Konary – interfejsy • Klasa • Musi implementować interfejsy • Interfejs • Nielimitowane dziedziczenie
Do dzieła • Stwórzcie nową solucję – TaskManager • Nazwa projektu – TaskManager • Namespace – TaskManager.Data • Klasa – Task • Name • Description • StartDate • Completed
Do dzieła • Interfejs ITask • Klasy BasicTask i ExtendedTask • Extended zawiera kolekcję ITask