Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zaawansowane konstrukcje w C# Marek Sienkiewicz i Mariusz Tymoszuk.

Podobne prezentacje


Prezentacja na temat: "Zaawansowane konstrukcje w C# Marek Sienkiewicz i Mariusz Tymoszuk."— Zapis prezentacji:

1 Zaawansowane konstrukcje w C# Marek Sienkiewicz i Mariusz Tymoszuk

2 Niejawne typowanie zmiennych Zazwyczaj deklarujemy zmienne w sposób jawny - podajemy konkretny typ deklarowanej zmiennej. C# udostępnia słowo kluczowe var które zastępuje nazwę typu. Istotne jest to, że używając tego słówka jesteśmy zmuszeni zainicjalizować naszą zmienną. Na podstawie tej początkowej wartości kompilator jest w stanie wywnioskować jej typ. Oznacza to że nie możemy przypisać wartości null.

3 Niejawne typowanie zmiennych Takie typowanie możemy stosować przy deklaracji wszystkich typów, włączając w to nasze własne. Bardzo wygodnie jest używać go w pętli foreach. Niejawnego typowania możemy używać wyłącznie do deklarowania zmiennych lokalnych w ciele metody lub właściwości. Niedozwolone jest używanie tego słowa kluczowego przy deklarowaniu typu zwracanego przez metodę, typów parametrów metod oraz typów pól danych klas lub struktur.

4 Niejawne typowanie zmiennych Nie mamy możliwości deklarowanie zmiennuch nullowanych, ale do już zainicjalizowanej zmiennej możemy przypisać null. Samą zmienną możemy przypisać do innej. Mamy możliwość zwrócenie takiej zmiennej.

5 Niejawne typowanie zmiennych Niejawnie typowane dane są silnie typowanymi danymi. Oznacza to że typ wybrany przy inicjalizacji nie może później być zmieniony. Takie typowanie nabiera sens gdy nie znamy dokładnego typu deklarowanej zmiennej. Ta technologia bardzo przydaje się w LINQ, gdzie nie znamy typu zbioru wyników zwróconego przez zapytanie.

6 Automatyczne właściwości Właściwości w C# zastępują metody getXX() i setXX(), które zapewniają bezpieczeństwo w dostępie do pól prywatnych i dają możliwość ustawiania im nowych wartości. Gdy chcemy aby nasza właściwość była standardowa, czyli aby zwracała wartość pola i ustawiała mu podaną wartość możemy skorzystać z automatycznej właściwości. Aby to zrobić definiujemy pole publiczne i w {} wskazujemy czy nasza właściwość ma zapewniać odczyt, zapis czy obie te funkcje. Jest to prostsze, szybsze, zajmuje mniej miejsca i miło się na to patrzy. Jako ciekawostkę możemy dodać, że w C# 6 będzie możliwość inicjowania automatycznych właściwości.

7 Automatyczne właściwości Pole prywatne jak i ciała bloków get i set zostaną dodane w czasie kompilacji. W środowisku Visual Studio 2013 do szybkiego tworzenia takich właściwości używamy skrótu prop. Nie mamy możliwości ustawienia pola tylko do odczytu lub tylko do zapisu jak też nie mamy bezpośredniego dostępu do pól prywatnych. Dostęp z zewnątrz wygląda tak jak przy użyciu standardowych właściwości.

8 Automatyczne właściwości Tak jak w przypadku tradycyjnych właściwości mamy możliwość definiowania modyfikatorów dostępu dla metod get i set. Właściwości mogą być tworzone także w interfejsach.

9 Metody rozszerzeniowe Metody rozszerzeniowe pozwalają na dodanie nowej funkcjonalności do istniejących, skompilowanych typów (klas, struktur i interfejsów) lub typów aktualnie kompilowanych, bez konieczności bezpośredniej ich zmiany. Muszą one być definiowane w statycznych klasach, dlatego też każda metoda musi być zadeklarowana jako statyczna. Możemy je rozpoznać po tym, że modyfikator dostępu pierwszego parametru jest słowem kluczowym this. Każda metoda rozszerzeniowa może być wywołana z aktualnej instancji typu lub statycznie, poprzez definiującą ją klasę statyczną.

10 Metody rozszerzeniowe Mogą przyjmować dowolną liczbę parametrów. Nie mają dostępu do pól rozszerzanego typu. Są oznaczone strzałką skierowaną do dołu.

11 Metody rozszerzeniowe Możliwe jest dodawanie nowej funkcjonalności do interfejsów poprzez metody rozszerzeniowe. Definiując taką metodę jesteśmy zmuszeni dostarczyć ciało metody, ponieważ wszystkie metody implementujące dany interfejs muszą zapewnić jej implementację.

12 Metody częściowe Technika metod częściowych pozwala na definiowanie prototypu metody w jednym pliku, a jej implementację w innym pliku. Takie metody muszą być definiowane w klasach częściowych, muszą zwracać void, muszą być statyczne lub instancyjne i są zawsze prywatne.

13 Inicjalizator obiektów Mechanizm, który pozwala podawać wartości pól publicznych i właściwości nowo tworzonego obiektu przy wywołaniu konstruktora.

14 Inicjalizator obiektów Za pomocą inicjalizatora możemy inicjować kolekcje a także bardziej złożone obiekty.

15 Typy anonimowe Dzięki typom anonimowym możemy tworzyć obiekty klas, których deklaracja nie istnieje. Typ anonimowy tworzymy używając słowa var, słowa kluczowego new i podając listę właściwości i ich wartości w nawiasach klamrowych. Typy anonimowe dziedziczą po System.Object. Właściwości są tylko do odczytu. Nie wspierają metod i zdarzeń. Są tworzone za pomocą domyślnego konstruktora.


Pobierz ppt "Zaawansowane konstrukcje w C# Marek Sienkiewicz i Mariusz Tymoszuk."

Podobne prezentacje


Reklamy Google