C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#!...
Transcript of C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#!...
![Page 1: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/1.jpg)
C# - innowacja czy plagiat?
Piotr Kowalski
Seminarium magisterskie �Zagadnienia programowania obiektowego�
Wydział Matematyki, Mechaniki i InformatykiUniwersytet Warszawski
![Page 2: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/2.jpg)
Agenda
! Wprowadzenie do platformy .NET
! Język C#
! Wnioski
![Page 3: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/3.jpg)
Platforma .NET
Web Services Web Forms Windows Forms
Data and XML classes
Framework Base Classes
Common Language Runtime
System operacyjny
![Page 4: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/4.jpg)
Nie tylko Windows
! Project Mono i DotGNU � open source CLR dla systemów Unixowych
! Mono 1.0 spodziewane na przełomie 2003/2004
! Wsparcie od HP i Intela
! Plany Microsoftu � licencja �shared source�
![Page 5: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/5.jpg)
MSIL
! Microsoft Intermediate Language
! Wykonywany przez maszynę CLR
! Mechanizm analogiczny do JVM
! Kompilator Just-In-Time na żądanie
![Page 6: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/6.jpg)
Języki .NET
! Czyli języki programowania, które �tłumaczą� się do MSIL! C#! C++ i zarządzany C++! Visual Basic! Java (także sam bajtkod)! Wsparcie dla innych języków powstaje w
ramach m.in. projektów open source
![Page 7: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/7.jpg)
Okoliczności powstania C#
! Kierownictwo prac: Anders Hejlsberg i ScottWiltamuth
! Założenia! Efektywność C! Obiektowość C++! Bezpieczeństwo Javy! Łatwość programowania Visual Basic�a
! Pierwsza odsłona: lipiec 2000
![Page 8: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/8.jpg)
Podstawowe byty C#
! Odpowiedniość z typami CTS! Klasy! Wyjątki! Interfejsy! Struktury! Typ wyliczeniowy
![Page 9: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/9.jpg)
Typy C# a CTS
! Boolean! Byte! SByte *! Char! Decimal! Double! Single
! Int16! UInt16 *! Int32! UInt32 *! Int64! UInt64 *! Object! String
![Page 10: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/10.jpg)
Wszystko jest obiektem
int n = 32;string Tekst = n.ToString();
string InnyTekst = 32.ToString();
Każdy typ danych dziedziczy automatycznie z System.Object.
![Page 11: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/11.jpg)
Zarządzanie typami
! is � sprawdza, czy obiekt jest danego typubool ToJestPies = (piesek is Pies);
! typeof � zwraca typ obiektu (jako obiekt System.Type)
Type TypObiektu = typeof(piesek)! sizeof � zwraca rozmiar danego typu
(dostępne tylko w kodzie potencjalnie niebezpiecznym)
int rozmiar = sizeof(Pies)
![Page 12: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/12.jpg)
Klasy w C#
! Nowy rodzaj klasy: sealed (zapieczętowana), dziedziczenie z takich klas jest zakazane; można także zakazywać przedefiniowywania poszczególnych metod przy dziedziczeniu
! Słowo kluczowe base analogiczne do this, odnoszące się do nadrzędnej klasy
! Klasy można zagnieżdżać
![Page 13: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/13.jpg)
Składowe klas
! Pola (fields)! Stałe! Metody! Konstruktory! Destruktory! Właściwości (properties)! Operatory! Zdarzenia (events)! Indeksery (indexers)
![Page 14: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/14.jpg)
Pola
! Nowy modyfikator: readonlypublic readonly int n = 3;wartość można ustawić w konstruktorze lub przy deklaracji (const: tylko przy deklaracji)
! Brak automatycznej synchronizacji pól zadeklarowanych jako static
![Page 15: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/15.jpg)
Sprytne pola (SmartFields)
! Automatyczne upublicznianie prywatnych składowych ze sprawdzaniem poprawności
public int x {get {
return _x;}set {
TestValid(value);_x = value;
} }
![Page 16: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/16.jpg)
Metody
! Niedozwolone parametry domyślne! Przekazywanie parametrów jako ref i out
(konieczne także przy wywołaniu)public static void GetVal(out int p) {
p = 5;}�
int q;GetVal(out q);
![Page 17: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/17.jpg)
Metody c.d.
! Zmienna liczba parametrów metody:słowo kluczowe params
! Może być tylko jedno jako ostatnie na liście parametrów, związane z tablicą
public int Print(params int[] Lista) {foreach(int v in Lista) �
}
![Page 18: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/18.jpg)
Konstruktory
! Konstruktory instancyjneStandardowo wywoływany domyślny konstruktor klasy nadrzędnej, inne wywołania trzeba wpisać explicite
! Konstruktory klasowe (statyczne)Deklarowane za pomocą słówka static
![Page 19: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/19.jpg)
Konstruktory c.d.
! Kolejność wołania konstruktorów:
! Inicjalizacja pól statycznych klasy! Wywołanie statycznego konstruktora! Inicjalizacja pól obiektu! Wywołanie konstruktora dla obiektu
![Page 20: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/20.jpg)
Dziedziczenie
! Słowa virtual i override � mechanizm wiązania dynamicznego z C++
override public void Info() {System.Console.WriteLine(��Tekst��)
}
![Page 21: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/21.jpg)
Dziedziczenie c.d.
! Słowo new dla metod � wyłączenie metody z poszukiwań wiązania dynamicznego
new public int Value() {return 5;
}
! Różnice przy wołaniu z klasy bazowej i z docelowej
![Page 22: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/22.jpg)
Widoczność
! public! protected � na poziomie klasy! internal � na poziomie pakietu (assembly)! protected internal! private
! Nie ma mechanizmu zaprzyjaźniania (friend)
![Page 23: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/23.jpg)
Boxing i unboxing
! Opakowywanie i rozpakowywanie typów prostych z obiektów
int i = 123;object o = i; // boxingint j = (int)o; // unboxing (explicite)Console.WriteLine(�j: {0}�, j); // boxing
![Page 24: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/24.jpg)
Przestrzenie nazw
! Deklarowane jak klasy
! Mechanizm zbliżony do pakietów Javy (m.in. identyczne zasady nazewnictwa)
! Słowo kluczowe using
! Współpraca przestrzeni nazw i pakietów .NET (assemblies), dołączanie powiązań
![Page 25: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/25.jpg)
Interfejsy
! Klasy całkowicie abstrakcyjne, definiowane za pomocą słowa interface
! Definiuje tylko nagłówki metod
! Możliwe implementowanie wielu interfejsów przez jedną klasę (niemożliwe wielodziedziczenie)
![Page 26: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/26.jpg)
Wyjątki
! Mechanizm try-catch-finally
! Wyjątki dziedziczą z klasy System.Exception
! Nie trzeba dopisywać słówka throws do nagłówków metod
! Dodatkowy atrybut InnerException
![Page 27: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/27.jpg)
Rzutowanie
! Mechanizm oparty na C++
! Słówko as, które próbuje dokonać konwersji nie rzucając wyjątku w przypadku błędu (zamiast tego zwraca null)
Pies pies;Zwierze zwierze = �;pies = zwierze as Pies;
![Page 28: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/28.jpg)
Rzutowanie c.d.
! Klasa System.Convert udostępnia szereg metod do konwersji między typami standardowymi
! Można przedefiniowywać rzutowania jak w C++ (jako operatory)
![Page 29: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/29.jpg)
Struktury
! Struktury mogą dziedziczyć tylko z interfejsów
! Można zdefiniować konstruktor dla struktury
! Domyślna widoczność � private
! Mniej wymagające pamięciowo od klas (przechowywane na stosie); wada � trzeba ręcznie przekazywać referencje
![Page 30: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/30.jpg)
Błędy arytmetyczne
! Słowa kluczowe checked i uncheckedpozwalają zaznaczyć, które fragmenty kodu powinny wykonywać się z włączona kontrolą błędów arytmetycznych, a które nie
! W przypadku braku tych klauzul efekt zależy od ustawień kompilatora
unchecked {a = b/c; // jeśli wiemy, ze c != 0
}! Mechanizm poprawia wydajność kodu
![Page 31: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/31.jpg)
Pętla foreach
! Dokonuje iteracji po kolekcji elementów (np. tablicy)
foreach(int i in Tablica) {// i jest tylko do odczytuConsole.WriteLine(�{0}�, i);
}
![Page 32: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/32.jpg)
Delegaci
! Zastępują wskaźniki do funkcji// najpierw trzeba zadeklarować typpublic delegate void Fun(int arg1, int arg2);�public void Work(Fun f) {
f(5,6);}
![Page 33: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/33.jpg)
Delegaci c.d.
! Aby zdefiniować delegata piszemy metodę zgodną z jego definicją, np.public void Funkcja(int arg1, int arg2) {
Console.WriteLine(�{0},{1}�, arg1, arg2);}
! A następnie w kodzie tworzymy instancję:Fun f = new Fun(Funkcja);
! Możliwość łączenia delegatów w łańcuchy
![Page 34: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/34.jpg)
Zdarzenia (events)
! Za pomocą mechanizmu delegatów można implementować mechanizm publish-subscribedzięki możliwości łączenia delegatów w łańcuchy
! W przypadku wystąpienia zdarzenia, klasa za nie odpowiadająca wywołuje łańcuch delegatów, z których każdy reprezentuje jednego subscribera
! Słowo kluczowe event
![Page 35: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/35.jpg)
Atrybuty
! Meta-dane trzymane razem z kodem, np. klucze publiczne, adresy WWW, informacje o autorze, licencji
! Wykorzystując mechanizm reflection można uzyskać dostęp do przechowywanych informacji
! Bogaty zbiór gotowych atrybutów, możliwość definiowania własnych
! Rozbudowany mechanizm kontroli wartości atrybutów wbudowany w CLR i IDE
![Page 36: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/36.jpg)
Atrybuty c.d.
[BugFix(123, �Jan Suzin�, �20/03/2002�, Comment=�Usunięty deadlock�)]
protected int GetValue(){�}
![Page 37: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/37.jpg)
Indeksery (indexers)
! Rozszerzenie mechanizmu przeładowywania operatora []
public object this[int n] {get { return items[n]; }set { items[n] = value; }
}
![Page 38: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/38.jpg)
Kod niebezpieczny (unsafe)
! C# daje możliwość pisania niskopoziomowego i niezarządzanego kodu
! Użycie klauzuli unsafe przy klasie, strukturze, interfejsie lub metodzie daje dostęp do operatorów sizeof, &, -> oraz *
! Słowo kluczowe fixed powoduje, że blok pamięci zarządzanej przestaje być poddawany odśmiecaniu i relokacji
![Page 39: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/39.jpg)
Drobnostki
! case może porównywać typ string
! nie można przykrywać zmiennych
! eliminacja domyślnej konwersji int -> bool
![Page 40: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/40.jpg)
Framework Class Library
! Zbiór �użytecznych� klas! Zawiera podstawowe struktury danych, klasy
do operacji wejścia/wyjścia (pliki, sieć), dostępu do danych (XML), wielowątkowości
! Wsparcie dla wyrażeń regularnych! Obecny mechanizm reflection! Windows Forms jako platforma tworzenia
interfejsu użytkownika
![Page 41: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/41.jpg)
Wnioski
! Wiele �drobnych� innowacji do języka podyktowanych względami praktycznymi
! Pozostawienie programiście szerokiego wachlarza dostępnych środków
! Dodatkowe obostrzenia składni w celu wyeliminowania typowych błędów
![Page 42: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/42.jpg)
Wnioski c.d.
! Język nastawiony na jak najefektywniejsze tworzenie kodu
! Rezygnacja z �czystości� języka na rzecz jego użyteczności
! Integralna część platformy .NET
![Page 43: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/43.jpg)
Moja opinia
Ani rewolucja, ani plagiat. Język o szerokich zastosowaniach dobrze
wpasowujący się w obecne praktyczne potrzeby programistów.
![Page 44: C# - innowacja czy plagiat?janusz/dydaktyka/2003... · Wprowadzenie do platformy .NET! Język C#! Wnioski. Platforma .NET Web Services Web Forms Windows Forms Data and XML classes](https://reader035.fdocuments.net/reader035/viewer/2022081522/5fc795c60d766a241b4ad237/html5/thumbnails/44.jpg)
Koniec
Dziękuję!